📌  相关文章
📜  PyQt5 – 按下时单选按钮未选中指示器的背景颜色(1)

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

PyQt5 – 按下时单选按钮未选中指示器的背景颜色

在PyQt5中,我们可以使用单选按钮(QRadioButton)来提供用户选择一项的能力。当单选按钮被选中时,指示器会变成选中状态。然而,当单选按钮未被选中时,指示器的背景颜色不会改变。在这篇文章中,我们将介绍如何实现按下时单选按钮未选中指示器的背景颜色。

实现

我们可以通过StyleSheet来改变单选按钮指示器的背景颜色。下面是一个示例程序:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout


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

        self.initUI()

    def initUI(self):
        self.setWindowTitle('RadioButton background color')
        self.setGeometry(300, 300, 350, 250)

        vbox = QVBoxLayout()

        rb1 = QRadioButton('Option 1')
        rb2 = QRadioButton('Option 2')

        vbox.addWidget(rb1)
        vbox.addWidget(rb2)

        # 设置样式表
        rb1.setStyleSheet('QRadioButton::indicator:checked {background-color: red;} QRadioButton::indicator:unchecked {background-color: gray;}')
        rb2.setStyleSheet('QRadioButton::indicator:checked {background-color: red;} QRadioButton::indicator:unchecked {background-color: gray;}')

        self.setLayout(vbox)

        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个程序中,我们创建了两个单选按钮,并使用setStyleSheet()方法来设置样式表。样式表中有两个选择器:一个是选中时(QRadioButton::indicator:checked),另一个是未选中时(QRadioButton::indicator:unchecked)。分别设置了两种不同的背景颜色。

运行结果

程序运行后,当选中一个单选按钮时,其指示器的背景色会变成红色,其他单选按钮的背景色则变成灰色。

RadioButton background color

总结

在这篇文章中,我们介绍了如何改变单选按钮指示器未选中时的背景颜色。通过设置样式表,可以轻松实现按下时单选按钮未选中指示器的背景颜色。