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

  • Post category:Python

PyQt5是一个基于Qt的Python图形用户界面工具包,它能够帮助我们快速地构建可视化应用程序。其中一个常见的控件是单选按钮,它允许用户从一组选项中选择一个。

但是有时候我们希望能够改变单选按钮被选中时的背景颜色,以便更好的反映用户的操作。下面是完整的使用攻略和两个示例说明。

准备工作

在开始之前,我们需要先安装PyQt5库。可以通过以下命令在终端或命令提示符中安装:

pip install pyqt5

改变背景颜色

要改变单选按钮被选中时的背景颜色,我们需要定义一个样式表并在适当的时候应用它。首先,我们可以创建一个样式表字符串,定义要改变的属性:

button_style = "QRadioButton::indicator:checked { background-color: #FF0000 }"

在上面的代码中,我们定义了一个样式表字符串button_style,用于改变背景颜色,当单选按钮被选中时,样式表会设置background-color属性为红色。

接下来,我们需要将样式表应用到单选按钮上。可以通过setStyleSheet函数实现:

button = QRadioButton("单选按钮")
button.setStyleSheet(button_style)

在上面的代码中,我们创建了一个单选按钮button,并将之前定义的样式表应用到该按钮上。

示例说明

下面提供两个示例,以帮助理解如何使用PyQt5的单选按钮样式表。

示例1 – 窗口中的单选按钮

下面是在窗口中添加单选按钮,并改变被选中时的背景颜色的代码:

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

app = QApplication(sys.argv)

# 创建窗口
window = QWidget()
window.setGeometry(100, 100, 200, 200)

# 创建单选按钮
button1 = QRadioButton("选项1")
button2 = QRadioButton("选项2")
button3 = QRadioButton("选项3")

# 设置样式表
button_style = "QRadioButton::indicator:checked { background-color: #FF0000 }"
button1.setStyleSheet(button_style)
button2.setStyleSheet(button_style)
button3.setStyleSheet(button_style)

# 将单选按钮添加到窗口中
button1.move(50, 50)
button2.move(50, 80)
button3.move(50, 110)

# 显示窗口
window.show()

# 进入应用程序的主循环
sys.exit(app.exec_())

在上面的代码中,我们创建了一个窗口window和三个单选按钮button1button2button3,并应用了之前定义的样式表。在窗口中,当单选按钮被选中时,背景颜色会变为红色。

示例2 – 单选按钮组

通常,我们会将单选按钮组合成一个组,以便用户仅能选择一个选项。下面是一个简单的示例,将两个单选按钮组合成一个组:

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

app = QApplication(sys.argv)

# 创建窗口
window = QWidget()
window.setGeometry(100, 100, 200, 200)

# 创建单选按钮
button1 = QRadioButton("选项1")
button2 = QRadioButton("选项2")

# 设置样式表
button_style = "QRadioButton::indicator:checked { background-color: #FF0000 }"
button1.setStyleSheet(button_style)
button2.setStyleSheet(button_style)

# 将单选按钮添加到一个布局中
layout = QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)

# 创建单选按钮组
group = QButtonGroup()
group.addButton(button1)
group.addButton(button2)

# 显示窗口
window.show()

# 进入应用程序的主循环
sys.exit(app.exec_())

在上面的代码中,我们创建了一个布局layout,将两个单选按钮添加到其中,并应用了之前定义的样式表。接下来,我们创建了一个单选按钮组group,将之前创建的两个单选按钮添加到该组中。

通过将单选按钮组合成一个组,可以保证用户在选中一个选项时,已选中的选项会自动取消选中,从而保证用户仅能选择一个选项。

总结

上面我们介绍了如何使用PyQt5中的样式表改变被选中的单选按钮的背景颜色。同时我们也提供了两个简单的示例,以帮助理解如何使用单选按钮样式表和单选按钮组。