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

  • Post category:Python

下面我将为您详细讲解Python的“PyQt5 – 勾选状态下的单选按钮的背景图片”的使用攻略。

1. 简介

在PyQt5中,单选按钮(QRadioButton)是一种常用的控件,用于在若干个选项中进行单选。本文将介绍如何在勾选状态下修改单选按钮的背景图片。

2. 准备

在使用PyQt5进行编程前,需要先安装PyQt5库。

您可以使用pip命令行工具,在命令行中输入以下命令进行安装:

pip install PyQt5

3. 示例

下面将举两个例子进行说明。

3.1 示例一

以下示例将演示如何在勾选状态下为单选按钮添加红色背景色。

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


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.rb1 = QRadioButton('Option 1', self)
        self.rb1.move(50, 50)

        self.rb2 = QRadioButton('Option 2', self)
        self.rb2.move(50, 100)

        self.rb1.toggled.connect(self.on_radio_button_toggled)
        self.rb2.toggled.connect(self.on_radio_button_toggled)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('QRadioButton')
        self.show()

    def on_radio_button_toggled(self):

        if self.rb1.isChecked():
            self.rb1.setStyleSheet('QRadioButton {background-color: red;}')
        elif self.rb2.isChecked():
            self.rb2.setStyleSheet('QRadioButton {background-color: red;}')


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

3.2 示例二

以下示例将演示如何在勾选状态下为单选按钮添加背景图片。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtGui import QIcon, QPixmap


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.rb1 = QRadioButton('Option 1', self)
        self.rb1.move(50, 50)
        self.rb1.setIconSize(self.rb1.size())
        self.rb1.setIcon(QIcon('unchecked.png'))

        self.rb2 = QRadioButton('Option 2', self)
        self.rb2.move(50, 100)
        self.rb2.setIconSize(self.rb2.size())
        self.rb2.setIcon(QIcon('unchecked.png'))

        self.rb1.toggled.connect(self.on_radio_button_toggled)
        self.rb2.toggled.connect(self.on_radio_button_toggled)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('QRadioButton')
        self.show()

    def on_radio_button_toggled(self):

        sender = self.sender()
        if sender.isChecked():
            pixmap = QPixmap('checked.png')
        else:
            pixmap = QPixmap('unchecked.png')

        sender.setIcon(QIcon(pixmap.scaled(sender.size())))


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

4. 结论

在PyQt5中,使用QRadioButton控件时可以通过StyleSheet来设置单选按钮的背景图片、背景颜色等样式。同时,可以通过toggled信号来判断单选按钮的勾选状态,并对其进行相应的设置。