📌  相关文章
📜  PyQt5 – 按下时皮肤选中复选框(1)

📅  最后修改于: 2023-12-03 14:45:51.009000             🧑  作者: Mango

PyQt5 – 按下时皮肤选中复选框

在PyQt5中,可以使用样式表自定义窗口控件的外观,包括复选框控件。本文将介绍如何在按下时改变复选框皮肤并选中复选框。

实现方法

在样式表中,使用:checked:unchecked伪状态选择器来分别选择选中和未选中的复选框。可以在不同状态下为控件设置不同的背景颜色,来达到按下时改变复选框皮肤的效果。

下面是一个例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox


class MainWindow(QWidget):

    def __init__(self):
        super().__init__()

        self.setGeometry(100, 100, 300, 200)

        # 创建复选框
        self.check_box = QCheckBox('选择框', self)
        self.check_box.setGeometry(50, 50, 100, 30)
        self.check_box.setStyleSheet('''
            QCheckBox {
                background-color: #aaa;
                color: white;
                font-weight: bold;
                font-size: 14px;
            }
            QCheckBox:checked {
                background-color: #555;
            }
            QCheckBox:unchecked {
                background-color: #aaa;
            }
            '''
            )

        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec_())

解释

样式表中的QCheckBox:checkedQCheckBox:unchecked选择器分别指定了复选框控件在选中状态和未选中状态下的样式。在本例中,选中状态下复选框背景色为深灰色,未选中状态下为浅灰色。内容区域文字颜色为白色。

        self.check_box.setStyleSheet('''
            QCheckBox {
                background-color: #aaa;
                color: white;
                font-weight: bold;
                font-size: 14px;
            }
            QCheckBox:checked {
                background-color: #555;
            }
            QCheckBox:unchecked {
                background-color: #aaa;
            }
            '''
            )
总结

使用PyQt5可以方便地自定义窗口控件的外观。在样式表中使用伪状态选择器可以实现按下复选框时改变复选框皮肤的效果。