PyQt5 – 未选中状态下被按下的复选框的背景颜色

  • Post category:Python

要实现 PyQT5 中未选中状态下被按下的复选框的背景颜色,需要使用 StyleSheet 样式表来设置。下面是实现过程:

  1. 自定义 CSS 样式表,并设置 QCheckBox 的 background-color 属性
checkBox.setStyleSheet('QCheckBox::indicator:checked {background-color: red;} QCheckBox::indicator:unchecked:pressed {background-color: blue;}')

这里我们设置 checked 后的背景色为红色,未选中并且在按下状态时的背景色为蓝色。

  1. 在页面中显示 QCheckBox
checkBox = QCheckBox('复选框', self)
checkBox.move(100, 50)
checkBox.resize(150, 30)
checkBox.setStyleSheet('QCheckBox::indicator:checked {background-color: red;} QCheckBox::indicator:unchecked:pressed {background-color: blue;}')
checkBox.show()

这里我们创建一个名为 checkBox 的 QCheckBox 对象,并设置其位置、大小和样式表,最后将其添加到页面中并显示出来。

示例1:在 PyQT5 中实现一个带有复选框的窗口,并设置为未选中状态下被按下的复选框的背景颜色为蓝色。

from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        checkBox = QCheckBox('复选框', self)
        checkBox.move(100, 50)
        checkBox.resize(150, 30)
        checkBox.setStyleSheet('QCheckBox::indicator:checked {background-color: red;} QCheckBox::indicator:unchecked:pressed {background-color: blue;}')

        self.setGeometry(200, 200, 500, 300)
        self.setWindowTitle('PyQT5 复选框变色')
        self.show()

if __name__ == '__main__':
    app = QApplication([])
    mainWindow = MainWindow()
    app.exec_()

示例2:在 PyQT5 中实现一个带有复选框的对话框,并设置为未选中状态下被按下的复选框的背景颜色为金色。

from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QVBoxLayout, QHBoxLayout, QLabel, QPushButton

class Dialog(QDialog):
    def __init__(self):
        super().__init__()

        checkBox = QCheckBox('复选框', self)
        checkBox.setStyleSheet('QCheckBox::indicator:checked {background-color: red;} QCheckBox::indicator:unchecked:pressed {background-color: gold;}')

        vbox = QVBoxLayout()
        vbox.addWidget(checkBox)

        hbox = QHBoxLayout()
        label = QLabel('示例对话框')
        okButton = QPushButton('确定')
        closeButton = QPushButton('关闭')
        hbox.addWidget(label)
        hbox.addStretch()
        hbox.addWidget(okButton)
        hbox.addWidget(closeButton)

        vbox.addLayout(hbox)

        self.setLayout(vbox)
        self.setWindowTitle('PyQT5 对话框变色')
        self.show()

if __name__ == '__main__':
    app = QApplication([])
    dialog = Dialog()
    app.exec_()

以上就是 PyQT5 中实现“未选中状态下被按下的复选框的背景颜色”的详细使用攻略。