PyQt5是一款Python编程语言的GUI编程工具包,它提供了一种快捷、灵活、稳定的GUI编程方式,支持多种操作系统平台,如Windows、Linux和MAC OS。在使用PyQt5时,可能会遇到需要改变未选中状态下单选按钮的颜色的需求,下面给出该需求的详细使用攻略。
安装PyQt5
在使用PyQt5之前,需要先进行安装。可通过pip指令进行安装,输入以下指令即可:
pip install PyQt5
改变未选中状态下的单选按钮的颜色
使用PyQt5时,单选按钮控件默认状态下的颜色为灰色。若想改变未选中状态下的单选按钮的颜色,可通过CSS样式表来实现,具体实现方法如下:
示例1
from PyQt5 import QtWidgets, QtGui
import sys
class Example(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QtWidgets.QVBoxLayout()
rb1 = QtWidgets.QRadioButton('RadioButton 1')
rb1.setStyleSheet("QRadioButton::indicator:!checked {background-color: red;}")
vbox.addWidget(rb1)
rb2 = QtWidgets.QRadioButton('RadioButton 2')
rb2.setStyleSheet("QRadioButton::indicator:!checked {background-color: blue;}")
vbox.addWidget(rb2)
rb3 = QtWidgets.QRadioButton('RadioButton 3')
rb3.setStyleSheet("QRadioButton::indicator:!checked {background-color: green;}")
vbox.addWidget(rb3)
self.setLayout(vbox)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Example')
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
示例2
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(300, 300, 400, 200)
self.setWindowTitle("Radio Button Example")
layout = QGridLayout()
self.setLayout(layout)
self.radiobutton1 = QRadioButton("Radio Button 1")
self.radiobutton2 = QRadioButton("Radio Button 2")
self.radiobutton3 = QRadioButton("Radio Button 3")
stylesheet="""
QRadioButton::indicator { width: 15px; height: 15px;}
QRadioButton::indicator:unchecked {
border: 2px solid black;
border-radius:7px;
}
QRadioButton::indicator:checked {
border:2px solid black;
border-radius:7px;
background-color : yellow;
}
"""
self.radiobutton1.setStyleSheet(stylesheet)
self.radiobutton2.setStyleSheet(stylesheet)
self.radiobutton3.setStyleSheet(stylesheet)
layout.addWidget(self.radiobutton1)
layout.addWidget(self.radiobutton2)
layout.addWidget(self.radiobutton3)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
上述两例均是通过设置单选按钮的样式表到达改变背景颜色的目的。其中:
- 第一例中通过在样式表中设置”QRadioButton::indicator:!checked {background-color: red;}”来实现单选按钮未选中状态下的背景颜色为红色,在使用过程中,可将样式表中的”red”改为其他颜色值实现相应的更改颜色。
- 第二例中样式表设置更加具有通用性,样式表中通过设置边框、边框半径、颜色等属性实现对单选按钮的样式自定义,可将其应用到多个单选按钮控件中。
注意:在调用窗口时应添加stylesheet。具体实现方法为在窗口初始化时调用setStyleSheet()方法即可。