PyQt5 - 当鼠标悬停时为单选按钮的指示器设置背景图片
在PyQt5中,我们可以通过设置CSS样式来设置控件的外观。本文将介绍如何设置单选按钮(QRadioButton)在鼠标悬停时的指示器背景图片。
步骤
- 创建单选按钮
我们先创建一个单选按钮。这可以通过使用QRadioButton
类来实现,示例如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.radioButton = QRadioButton('RadioButton', self)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
ex.show()
sys.exit(app.exec_())
- 设置CSS样式
通过为单选按钮设置CSS样式,我们可以为其设置指示器的背景图片。示例如下:
CSS = """
QRadioButton::indicator:checked {
background-image: url(path/to/image.png);
}
QRadioButton::indicator:hover {
background-image: url(path/to/hover-image.png);
}
"""
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.radioButton = QRadioButton('RadioButton', self)
self.radioButton.setStyleSheet(CSS)
在上述代码中,我们定义了两种CSS样式:QRadioButton::indicator:checked
和 QRadioButton::indicator:hover
。前者用于设置单选按钮被选中时指示器的背景图片,后者用于设置鼠标悬停在单选按钮上时指示器的背景图片。
完成上述修改后,我们便可以在单选按钮被选中或鼠标悬停在上面时设置相应的指示器背景图片。如果你希望在两种情况下都使用相同的图片,只需要将CSS样式合并即可。
示例
下面是两个示例代码,分别展示了如何在单选按钮被选中或鼠标悬停在上面时为其设置指示器背景图片。
示例1:设置被选中时的背景图片
CSS = """
QRadioButton::indicator:checked {
background-image: url(path/to/image.png);
}
"""
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.radioButton = QRadioButton('RadioButton', self)
self.radioButton.setStyleSheet(CSS)
示例2:设置悬停时的背景图片
CSS = """
QRadioButton::indicator:hover {
background-image: url(path/to/hover-image.png);
}
"""
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.radioButton = QRadioButton('RadioButton', self)
self.radioButton.setStyleSheet(CSS)
以上就是关于如何在PyQt5中为单选按钮的指示器设置背景图片的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 当鼠标悬停时为单选按钮的指示器设置背景图片 - Python技术站