📌  相关文章
📜  PyQt5 - 按下时将背景图像设置为单选按钮指示器(1)

📅  最后修改于: 2023-12-03 15:03:56.290000             🧑  作者: Mango

PyQt5 - 按下时将背景图像设置为单选按钮指示器

在PyQt5中,可以通过信号槽机制实现按下单选按钮时将背景图像设置为指示器的效果,从而增强用户交互体验。

代码实现

以下是实现该效果的代码:

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

class Example(QWidget):
    
    def __init__(self):
        super().__init__()       
        self.initUI()
        
    def initUI(self):      

        self.rb1 = QRadioButton('Button1', self)
        self.rb1.move(50, 50)
        self.rb1.toggled.connect(lambda:self.setBgColor(self.rb1))
        
        self.rb2 = QRadioButton('Button2', self)
        self.rb2.move(50, 80)        
        self.rb2.toggled.connect(lambda:self.setBgColor(self.rb2))

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Radio Button Example')
        self.show()
        
    def setBgColor(self, rb):
        
        if rb.isChecked() == True:
            self.setStyleSheet("background-image : url(path/to/image.png)")
        else:
            self.setStyleSheet("background-image : none")
    
if __name__ == '__main__':
    
    app = QApplication([])
    ex = Example()
    app.exec_()
实现说明

首先,我们创建一个Example类,该类继承自QWidget,定义了以下方法:

  • __init__():类构造函数,初始化UI界面

  • initUI():初始化UI界面,包括创建两个单选按钮,设置单选按钮的文本和位置,并将其与setBgColor()函数连接

  • setBgColor():根据单选按钮是否被选中,设置父窗口的背景图片。如果单选按钮被选中,则将背景图设置为指定路径的图片,否则将背景图设为none,即清除背景图片。

initUI()方法中,我们创建了两个单选按钮,并将其与setBgColor()函数连接。该函数使用isChecked()方法检查单选按钮是否被选中,如果被选中,则使用setStyleSheet()方法设置父窗口的背景图像为指定路径的图片,否则将背景图设为none

我们使用QApplication类初始化应用程序,创建Example对象并执行exec_()方法启动程序。