针对“PyQt5 - 改变选中状态下的单选按钮的颜色”的需求,下面是一个完整的使用攻略。
1. 安装 PyQt5
首先需要安装 PyQt5,可以通过 pip 命令进行安装:
pip install PyQt5
2. 创建界面
接下来,需要通过 PyQt5 来创建一个界面。可以使用 Qt Designer 创建一个 UI 文件,或者通过代码创建界面。
这里我们通过代码创建一个带有单选按钮的窗口:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.radioButton = QRadioButton("单选按钮", self)
self.radioButton.setGeometry(10, 10, 100, 30)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
这里通过 QWidget 的子类 Window 创建了一个窗口,并在窗口中添加了一个单选按钮。
3. 改变选中状态下的单选按钮的颜色
接下来,就是改变选中状态下的单选按钮的颜色。这里需要使用 QSS(Qt Style Sheets)来改变单选按钮的样式。
首先需要为单选按钮设置一个样式表,例如:
radioButton.setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: blue;
border: 2px solid blue;
}
""")
这里,将 QRadioButton 的颜色设置为黑色,将 QRadioButton::indicator:checked(选中状态下的指示器)的背景色设置为蓝色,并设置一个蓝色边框。
完整代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.radioButton = QRadioButton("单选按钮", self)
self.radioButton.setGeometry(10, 10, 100, 30)
self.radioButton.setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: blue;
border: 2px solid blue;
}
""")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
执行上面的代码,就可以看到选中状态下的单选按钮的颜色已经改变了。
4. 示例说明
下面通过两个示例来说明如何改变不同单选按钮的颜色。
示例1:改变两个单选按钮的颜色
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.radioButton1 = QRadioButton("单选按钮1", self)
self.radioButton1.setGeometry(10, 10, 100, 30)
self.radioButton2 = QRadioButton("单选按钮2", self)
self.radioButton2.setGeometry(10, 50, 100, 30)
self.radioButton1.setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: blue;
border: 2px solid blue;
}
""")
self.radioButton2.setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: red;
border: 2px solid red;
}
""")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
在这个示例中,创建了两个单选按钮,分别是 radioButton1 和 radioButton2,分别为选中状态下设置不同的颜色。
示例2:改变单选按钮组中指定单选按钮的颜色
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 300, 200)
self.radioButton1 = QRadioButton("单选按钮1", self)
self.radioButton1.setGeometry(10, 10, 100, 30)
self.radioButton2 = QRadioButton("单选按钮2", self)
self.radioButton2.setGeometry(10, 50, 100, 30)
self.radioButton3 = QRadioButton("单选按钮3", self)
self.radioButton3.setGeometry(10, 90, 100, 30)
self.group = QButtonGroup(self)
self.group.addButton(self.radioButton1)
self.group.addButton(self.radioButton2)
self.group.addButton(self.radioButton3)
self.radioButton1.setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: blue;
border: 2px solid blue;
}
""")
self.group.button(2).setStyleSheet("""
QRadioButton {
color: black;
}
QRadioButton::indicator:checked {
background-color: red;
border: 2px solid red;
}
""")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
在这个示例中,创建了三个单选按钮,并将它们添加到一个组中(使用 QButtonGroup 创建组,并使用 addButton 将单选按钮添加到组中),然后为组中的第三个单选按钮(索引为 2)设置了选中状态下的颜色。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 改变选中状态下的单选按钮的颜色 - Python技术站