📅  最后修改于: 2023-12-03 15:19:38.252000             🧑  作者: Mango
QLabel 是 PyQt5 中常用的一个控件,用于显示文本或图像。而当我们想要在 QLabel 上实现点击事件,使其可交互时,就需要用到 Python 中的信号与槽机制。
首先需要导入所需的模块和 PyQt5 中的信号模块:
from PyQt5.QtWidgets import QLabel, QApplication
from PyQt5.QtCore import Qt, pyqtSignal
然后定义一个继承自 QLabel 的子类,并开启鼠标追踪:
class ClickableQLabel(QLabel):
clicked = pyqtSignal() # 自定义信号
def __init__(self, parent=None):
super(ClickableQLabel, self).__init__(parent)
self.setMouseTracking(True) # 开启鼠标追踪
接着为 QLabel 绑定鼠标点击事件:
def mousePressEvent(self, event):
self.clicked.emit() # 发送信号
最后,在主程序中创建该子类,并为其连接信号和槽:
class Demo(QMainWindow):
def __init__(self):
super().__init__()
self.label = ClickableQLabel('点击这里')
self.label.setAlignment(Qt.AlignCenter)
self.setCentralWidget(self.label)
self.label.clicked.connect(self.on_label_clicked)
def on_label_clicked(self):
print('Label 被点击了')
以上就是 QLabel 点击 Python 的实现思路和代码实现,通过这种方式就可以使 QLabel 具有交互性了。