📅  最后修改于: 2023-12-03 15:18:46.654000             🧑  作者: Mango
在 Pyqt5 中,单选按钮是一种常见的用户界面控件。选中单选按钮时,其圆形指示器会出现一个选中的标记,但这个标记的背景颜色是无法修改的。如果想要自定义单选按钮选中指示器的背景颜色,我们可以使用样式表来解决这个问题。
在 PyQt5 中,可以使用样式表来自定义控件的外观。可以通过样式表来修改控件的背景颜色、字体颜色、边框样式、选中状态等。样式表可以通过 setStyleSheet()
方法来设置,其语法如下:
控件.setStyleSheet(样式表字符串)
例如,以下代码将一种背景颜色为红色的样式表应用于按钮 my_button
:
style_sheet = "QPushButton {background-color: red;}"
my_button.setStyleSheet(style_sheet)
对于单选按钮,可以使用样式表来修改其选中指示器的背景颜色。以一个红色的选中指示器为例,其样式表字符串如下:
QRadioButton::indicator:checked {
background-color: red;
}
这个样式表包含两个部分。第一部分是 QRadioButton::indicator:checked
选择器,它表示选中状态的单选按钮。第二部分是 background-color: red;
,它表示将背景颜色设置为红色。
使用以下代码将样式表应用到单选按钮 my_radio_button
上:
style_sheet = "QRadioButton::indicator:checked {background-color: red;}"
my_radio_button.setStyleSheet(style_sheet)
下面是一个完整的 Pyqt5 代码示例,其中自定义了三个单选按钮的选中指示器的背景颜色。选中不同的单选按钮,可以看到其选中指示器的背景颜色会随之改变:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout
class App(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle('PyQt5 - 单选按钮选中指示器的背景颜色')
red_radio_button = QRadioButton('红色')
yellow_radio_button = QRadioButton('黄色')
green_radio_button = QRadioButton('绿色')
layout = QVBoxLayout()
layout.addWidget(red_radio_button)
layout.addWidget(yellow_radio_button)
layout.addWidget(green_radio_button)
self.setLayout(layout)
style_sheet = "QRadioButton::indicator:checked {background-color: red;}"
red_radio_button.setStyleSheet(style_sheet)
style_sheet = "QRadioButton::indicator:checked {background-color: yellow;}"
yellow_radio_button.setStyleSheet(style_sheet)
style_sheet = "QRadioButton::indicator:checked {background-color: green;}"
green_radio_button.setStyleSheet(style_sheet)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
运行这个代码示例,可以看到如下界面: