要让Python中使用PyQt5的单选按钮(QRadioButton)在被按下的时候改变背景颜色,可以通过设置样式表来实现。
在样式表中,可以使用伪状态选中(:checked)来确定单选按钮是否被选中。可以通过设置样式来改变单选按钮的背景颜色。
以下是示例代码,演示了如何设置单选按钮的样式表,使其在被选中时,背景颜色变为红色。
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton
from PyQt5.QtCore import Qt
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
# 创建两个单选按钮
button1 = QRadioButton("Button 1")
button2 = QRadioButton("Button 2")
# 设置单选按钮未被按下时的背景色
button1.setStyleSheet("QRadioButton::indicator { background-color: lightgray; }")
button2.setStyleSheet("QRadioButton::indicator { background-color: lightgray; }")
# 设置单选按钮被按下时的背景色
button1.setStyleSheet("QRadioButton:checked { background-color: red; }")
button2.setStyleSheet("QRadioButton:checked { background-color: red; }")
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)
window.show()
app.exec_()
在以上示例代码中,使用setStyleSheet函数来设置样式表。将选中状态设置为伪状态选中,并通过设置background-color属性为red,来改变单选按钮的背景颜色。
以下是另一个示例代码,演示了如何创建多个单选按钮,并在被按下时改变它们的背景颜色。
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton
from PyQt5.QtCore import Qt
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
# 创建多个单选按钮
for i in range(5):
button = QRadioButton(f"Button {i+1}")
button.setStyleSheet("QRadioButton::indicator { background-color: lightgray; }")
button.setStyleSheet("QRadioButton:checked { background-color: red; }")
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec_()
在以上示例代码中,使用循环创建了5个单选按钮,设置背景颜色与之前相同。这个代码与之前的差别在于,使用循环来创建多个单选按钮,使代码更加简洁。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 被按下的单选按钮的背景颜色 - Python技术站