PyQt5 – 勾选状态下被按下的单选按钮的背景图片

  • Post category:Python

下面就来详细讲解Python中使用PyQt5库实现“勾选状态下被按下的单选按钮的背景图片”的完整使用攻略。

第一步:安装PyQt5库

在开始使用PyQt5之前,需要先安装PyQt5库。可以使用如下命令进行安装:

pip install PyQt5

第二步:创建单选按钮

使用PyQt5可以很方便的创建单选按钮,只需要调用QRadioButton类即可。例如:

from PyQt5.QtWidgets import QApplication, QRadioButton, QWidget

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

button = QRadioButton("选项1", window)
button.move(50, 50)

window.setGeometry(100, 100, 250, 150)
window.show()

上面的代码中,我们创建了一个名为button的单选按钮,文本为“选项1”,并且将其放置在(50,50)的位置。

第三步:添加背景图片

为了使勾选状态下的单选按钮显示不同的背景图片,我们需要通过setStyleSheet方法来设置样式表。例如:

button.setStyleSheet("QRadioButton::indicator:checked {"
                     "image: url(checked.png);"
                     "background-color: transparent; }"
                     "QRadioButton::indicator:unchecked {"
                     "image: url(unchecked.png);"
                     "background-color: transparent; }")

上面的代码中,我们通过样式表的方式设置了单选按钮的背景图片和背景颜色。其中checked.pngunchecked.png是我们预先准备好的两张图片,分别表示勾选状态和未勾选状态下的图片。

第四步:完整代码示例

下面是一个完整的代码示例,可以直接运行查看效果:

from PyQt5.QtWidgets import QApplication, QRadioButton, QWidget

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

button = QRadioButton("选项1", window)
button.move(50, 50)

button.setStyleSheet("QRadioButton::indicator:checked {"
                     "image: url(checked.png);"
                     "background-color: transparent; }"
                     "QRadioButton::indicator:unchecked {"
                     "image: url(unchecked.png);"
                     "background-color: transparent; }")

window.setGeometry(100, 100, 250, 150)
window.show()

app.exec_()

在运行该示例代码之前需要先准备好需要使用的两张图片checked.pngunchecked.png。在勾选和未勾选状态下单选按钮的背景图片应该分别表示为这两张图片的内容。