PyQt5 – 设置单选按钮被按下时的背景颜色

  • Post category:Python

要设置Python PyQt5中单选按钮被按下时的背景颜色,可以通过StyleSheet来实现。

以下是如何使用样式表设置单选按钮被按下时的背景颜色:

  1. 定义样式表

定义样式表,并使用background-color属性来指定颜色,如下所示:

style = """
QRadioButton::indicator:checked {
    background-color: #00ff00; /* 按钮被选中时的颜色 */
}
"""

此处将单选按钮被选中时的背景颜色设置为绿色。

  1. 应用样式表

使用setStyleSheet()方法,将样式表应用到单选按钮上,如下所示:

radio_button = QRadioButton('Select me')
radio_button.setStyleSheet(style)

这里创建了一个单选按钮,并将样式表应用到按钮上。

下面是一个完整的示例程序:

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

app = QApplication([])
window = QWidget()

layout = QVBoxLayout()

style = """
QRadioButton::indicator:checked {
    background-color: #00ff00; /* 按钮被选中时的颜色 */
}
"""

button1 = QRadioButton('Option 1')
button1.setStyleSheet(style)
button2 = QRadioButton('Option 2')
button2.setStyleSheet(style)
button3 = QRadioButton('Option 3')
button3.setStyleSheet(style)

layout.addWidget(button1)
layout.addWidget(button2)
layout.addWidget(button3)

window.setLayout(layout)
window.show()
app.exec_()

运行该程序,在选中单选按钮时,按钮的背景颜色会变成绿色。

除此之外,还可以通过设置QPalette来更改单选按钮的背景颜色。下面是一个使用QPalette设置单选按钮背景颜色的示例程序:

from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout
from PyQt5.QtGui import QPalette, QColor

app = QApplication([])
window = QWidget()

layout = QVBoxLayout()

button1 = QRadioButton('Option 1')
button2 = QRadioButton('Option 2')
button3 = QRadioButton('Option 3')

palette = QPalette()
palette.setColor(QPalette.Active, QPalette.Base, QColor('#aaffaa')) # 按钮被选中时的背景颜色
button1.setAutoExclusive(True)
button2.setAutoExclusive(True)
button3.setAutoExclusive(True)
button1.setPalette(palette)
button2.setPalette(palette)
button3.setPalette(palette)

layout.addWidget(button1)
layout.addWidget(button2)
layout.addWidget(button3)

window.setLayout(layout)
window.show()
app.exec_()

在此示例程序中,我们使用QPalette来设置单选按钮被选中时的背景颜色。注意,这里需要设置AutoExclusive为True,确保只有一个单选按钮处于选中状态。