PyQt5 修改标签字体和颜色的程序

下面是一个使用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界面所需的窗口、标签、按钮等

  • QFontQColor: 用于处理字体和颜色

2. 主窗口类 FontColorApp

继承自 QMainWindow,是应用程序的主窗口。

3. initUI 方法

  • 设置窗口标题和大小

  • 创建中央部件和布局

  • 创建显示文本的标签

  • 创建两个按钮用于修改字体和颜色

  • 设置初始字体和颜色

  • 应用初始设置

4. change_font 方法

  • 打开字体对话框让用户选择字体

  • 如果用户确认选择,则更新当前字体

5. change_color 方法

  • 打开颜色对话框让用户选择颜色

  • 如果用户选择了有效颜色,则更新当前颜色

6. apply_settings 方法

  • 将当前选择的字体和颜色应用到标签上

  • 使用样式表设置颜色,同时保留边框和内边距设置

7. 主程序入口

  • 创建QApplication实例

  • 创建主窗口实例并显示

  • 启动应用程序的事件循环

使用说明

  1. 运行程序后,会显示一个窗口,其中包含一个文本标签和两个按钮

  2. 点击"修改字体"按钮会打开字体对话框,可以选择字体、字号和样式

  3. 点击"修改颜色"按钮会打开颜色对话框,可以选择文本颜色

  4. 所有更改会立即应用到标签文本

相关推荐
love530love2 分钟前
【实践指南】Windows 下 Stable Diffusion WebUI 与 ComfyUI 模型库“完美共存”指南
人工智能·windows·python·stable diffusion·大模型·aigc·comfyui
Aerelin2 分钟前
爬虫图片采集(自动化)
开发语言·前端·javascript·爬虫·python·html
曲幽4 分钟前
Flask路由参数处理:GET与POST的实战指南
python·web·route·form·get·post
枫叶丹45 分钟前
浙人医信创实践:电科金仓异构多活架构破解集团化医院转型难题
开发语言·数据库·架构
小李小李快乐不已6 分钟前
图论理论基础(2)
java·开发语言·c++·算法·图论
yddddddy7 分钟前
Django在项目中的作用
数据库·python·django
CNRio7 分钟前
第五章-综合实战:从零开始部署一个Flask应用
后端·python·容器·flask
Sheffi667 分钟前
Objective-C 黑魔法:Method Swizzling 的正确姿势与滥用风险
开发语言·macos·objective-c
子午8 分钟前
【水果识别系统】Python+TensorFlow+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习