PySide6 GUI 编程(35):QPalette 小结

2024-08-26 16:23:25 浏览数 (3)

QPalette的ColorRole类型

示例代码

代码语言:python代码运行次数:0复制
from PySide6.QtGui import QFont, QPalette, Qt
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow, QVBoxLayout, QWidget


class MyMainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 初始化布局
        main_layout = QVBoxLayout()  # 创建布局

        # 创建一个容器部件
        container = QWidget()
        container.setLayout(main_layout)  # 将布局设置到容器部件

        # 为每一个 ColorRole 创建一个 QLabel 并设置其颜色
        for role in QPalette.ColorRole:
            """
            QPalette.ColorRole.NColorRoles 是一个特殊的 QPalette.ColorRole 枚举值,表示颜色角色的数量
            这个值不代表一个实际的颜色角色,而是用于在循环遍历或计算颜色角色数量时作为一个边界值
            """
            if role == QPalette.ColorRole.NColorRoles:
                print(role.name, 'out of border')
                break
            label = QLabel(role.name)  # 使用 str(role) 确保得到字符串
            label.setAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter)
            label.setFont(QFont('Hack nerd font mono', 20))
            main_layout.addWidget(label)  # 将标签添加到布局

        self.setCentralWidget(container)  # 将容器部件设置为中心部件


if __name__ == '__main__':
    app = QApplication([])
    window = MyMainWindow()
    window.show()
    app.exec()

运行效果

枚举 ColorRole枚举 ColorRole

汇总

ColorRole 与 ColorGroupColorRole 与 ColorGroup

0 人点赞