下面是一个使用PyQt5编写的程序,允许用户修改标签的字体和颜色:
python
import sys
from PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel,
QPushButton, QVBoxLayout, QHBoxLayout,
QWidget, QFontDialog, QColorDialog)
from PyQt5.QtGui import QFont, QColor
from PyQt5.QtCore import Qt
class FontColorApp(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置窗口标题和大小
self.setWindowTitle('修改标签字体和颜色')
self.setGeometry(300, 300, 500, 300)
# 创建中央部件和布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
main_layout = QVBoxLayout(central_widget)
# 创建标签
self.label = QLabel('这是一个示例文本,用于演示字体和颜色的修改。')
self.label.setAlignment(Qt.AlignCenter) # 文本居中
self.label.setStyleSheet("border: 1px solid gray; padding: 10px;") # 添加边框和内边距
# 创建按钮
font_btn = QPushButton('修改字体')
color_btn = QPushButton('修改颜色')
# 连接按钮信号到槽函数
font_btn.clicked.connect(self.change_font)
color_btn.clicked.connect(self.change_color)
# 创建水平布局放置按钮
btn_layout = QHBoxLayout()
btn_layout.addWidget(font_btn)
btn_layout.addWidget(color_btn)
# 将标签和按钮布局添加到主布局
main_layout.addWidget(self.label)
main_layout.addLayout(btn_layout)
# 设置初始字体和颜色
self.current_font = QFont('Arial', 12)
self.current_color = QColor(0, 0, 0) # 黑色
# 应用初始设置
self.apply_settings()
def change_font(self):
"""打开字体对话框并更新字体"""
font, ok = QFontDialog.getFont(self.current_font, self)
if ok:
self.current_font = font
self.apply_settings()
def change_color(self):
"""打开颜色对话框并更新颜色"""
color = QColorDialog.getColor(self.current_color, self)
if color.isValid():
self.current_color = color
self.apply_settings()
def apply_settings(self):
"""应用当前的字体和颜色设置到标签"""
self.label.setFont(self.current_font)
# 使用样式表设置颜色
self.label.setStyleSheet(f"color: {self.current_color.name()}; border: 1px solid gray; padding: 10px;")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = FontColorApp()
ex.show()
sys.exit(app.exec_())
代码说明
1. 导入必要的模块
-
sys
: 用于系统相关操作 -
PyQt5的各种组件:创建GUI界面所需的窗口、标签、按钮等
-
QFont
和QColor
: 用于处理字体和颜色
2. 主窗口类 FontColorApp
继承自 QMainWindow
,是应用程序的主窗口。
3. initUI
方法
-
设置窗口标题和大小
-
创建中央部件和布局
-
创建显示文本的标签
-
创建两个按钮用于修改字体和颜色
-
设置初始字体和颜色
-
应用初始设置
4. change_font
方法
-
打开字体对话框让用户选择字体
-
如果用户确认选择,则更新当前字体
5. change_color
方法
-
打开颜色对话框让用户选择颜色
-
如果用户选择了有效颜色,则更新当前颜色
6. apply_settings
方法
-
将当前选择的字体和颜色应用到标签上
-
使用样式表设置颜色,同时保留边框和内边距设置
7. 主程序入口
-
创建QApplication实例
-
创建主窗口实例并显示
-
启动应用程序的事件循环
使用说明
-
运行程序后,会显示一个窗口,其中包含一个文本标签和两个按钮
-
点击"修改字体"按钮会打开字体对话框,可以选择字体、字号和样式
-
点击"修改颜色"按钮会打开颜色对话框,可以选择文本颜色
-
所有更改会立即应用到标签文本