📅  最后修改于: 2023-12-03 15:03:56.233000             🧑  作者: Mango
PyQt5是一个Python GUI框架,其具有广泛的功能和丰富的UI元素。在本文中,我们将探讨如何在悬停时为选中状态的单选按钮添加背景图像。
在演示本教程时,我们需要安装PyQt5库。
pip install PyQt5
我们将创建一个单选按钮,并在其悬停时更改其背景图像。
首先,我们需要导入必要的模块。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtGui import QIcon, QPixmap, QPainter
from PyQt5.QtCore import Qt
接下来,我们将创建一个窗口并将单选按钮添加到其中。
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 - Hovering Radio Button'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.rbtn = QRadioButton('Option 1', self)
self.rbtn.setGeometry(100, 50, 100, 30)
self.show()
现在,我们将创建一个悬停事件处理程序,以设置单选按钮的背景图像。
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 - Hovering Radio Button'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.rbtn = QRadioButton('Option 1', self)
self.rbtn.setGeometry(100, 50, 100, 30)
self.rbtn.setStyleSheet("""
QRadioButton:hover:checked {
background-image: url(hover_selected.png);
}
""")
self.show()
最后,我们只需在同一目录下添加带有“hover_selected.png”名称的图像,此图像将在悬停时用作选中状态的单选按钮的背景图像。
我们现在已经创建了悬停时选中状态的单选按钮,其背景图像将在悬停时更改。完整的代码如下所示:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtGui import QIcon, QPixmap, QPainter
from PyQt5.QtCore import Qt
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 - Hovering Radio Button'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.rbtn = QRadioButton('Option 1', self)
self.rbtn.setGeometry(100, 50, 100, 30)
self.rbtn.setStyleSheet("""
QRadioButton:hover:checked {
background-image: url(hover_selected.png);
}
""")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
注意,我们使用的样式表属性是由“:hover:checked”组成的。 :hover伪类用于检测鼠标何时悬停在单选按钮上,checked伪类用于检测单选按钮何时处于选中状态。
在本教程中,我们学习了如何在悬停时为选中状态的单选按钮添加背景图像。重要的是要记住,我们使用的样式表属性是由“:hover:checked”组成的,以便在单选按钮被选中并悬停时使用不同的背景图像。