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()
运行效果
汇总