📜  qlabel 点击 python (1)

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

QLabel 点击 Python

简介

QLabel 是 PyQt5 中常用的一个控件,用于显示文本或图像。而当我们想要在 QLabel 上实现点击事件,使其可交互时,就需要用到 Python 中的信号与槽机制。

实现思路
  1. 创建 QLabel。
  2. 将 QLabel 设置为可交互(即开启其鼠标追踪)。
  3. 为 QLabel 绑定鼠标点击事件。
  4. 通过信号与槽机制实现点击事件。
代码实现

首先需要导入所需的模块和 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 具有交互性了。