PyQt5 是一种 Python 解释器的 GUI 工具包。它允许程序员在 python 上创建桌面应用程序。此外,PyQt5 还包含了一个 Qt Designer,可以用来创建 Qt 应用程序的图形用户界面。在 PyQt5 中通过 QSS(Qt样式表) 可以很方便的设置 GUI 界面的样式。本文将介绍如何通过 PyQt5 在反悬停状态下改变标签的背景颜色。
安装 PyQt5
要使用 PyQt5,首先需要安装 PyQt5 库。可以使用以下命令来安装 PyQt5:
pip install PyQt5
编写代码
以下是一个示例程序,演示在反悬停状态下,在 PyQt5 中改变标签的背景颜色:
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class CustomLabel(QLabel):
def __init__(self, parent=None):
super(CustomLabel, self).__init__(parent)
self.setStyleSheet("background-color: white;")
def enterEvent(self, event):
self.setStyleSheet("background-color: blue;")
def leaveEvent(self, event):
self.setStyleSheet("background-color: white;")
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.main_layout = QVBoxLayout(self)
# 创建自定义标签
label1 = CustomLabel()
label1.setText("Hello PyQt5")
label2 = CustomLabel()
label2.setText("Hello World")
# 添加标签到主布局中
self.main_layout.addWidget(label1)
self.main_layout.addWidget(label2)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
在这个示例程序中,自定义一个名为 CustomLabel 的 QLabel 子类。在这个类中,定义了三个方法 __init__
、enterEvent
、leaveEvent
。
__init__
方法中调用父类 QLabel 的构造方法,同时设置默认的背景为白色。
enterEvent
方法用于处理鼠标移动到标签上时的处理逻辑。在这个方法中,改变背景颜色为蓝色。
leaveEvent
方法用于处理鼠标离开标签的处理逻辑。在这个方法中,改变背景颜色为白色。
然后在 MyWindow 类中,创建 CustomLabel 的实例,并将其添加到主布局中。最后调用 QApplication 的 exec() 方法启动程序。
以下是另一个示例程序,演示在反悬停状态下,在 PyQt5 中改变按钮的背景颜色:
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class HoverButton(QPushButton):
def __init__(self, parent=None):
super(HoverButton, self).__init__(parent)
self.setStyleSheet("background-color: white;")
def enterEvent(self, event):
self.setStyleSheet("background-color: blue;")
def leaveEvent(self, event):
self.setStyleSheet("background-color: white;")
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.main_layout = QVBoxLayout(self)
# 创建自定义按钮
button1 = HoverButton()
button1.setText("Click Me")
button2 = HoverButton()
button2.setText("OK")
# 添加按钮到主布局中
self.main_layout.addWidget(button1)
self.main_layout.addWidget(button2)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec())
这个示例程序与前一个示例程序类似,只是自定义了一个名为 HoverButton 的 QPushButton 子类,并实现了其 enterEvent 和 leaveEvent 两个方法。最后在 MyWindow 类中创建 HoverButton 的实例,并将其添加到主布局中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 在反悬停状态下改变标签的背景颜色 - Python技术站