[Python] PyQt5 QLabel 实现鼠标悬停、单击、双击

正在做的项目是在Label上显示图像, 并在鼠标悬停点击时做相应动作。

但PyQt5 QLabel本身只支持对超链接内容的click操作, 所以要重写QLabel类,添加我们想要的功能。

基本思路:基于QLabel本身的方法,在鼠标悬停、点击时发送signal,带出Label objectName,主窗口的槽函数做相应动作。

此方法不需要根据鼠标和Label的位置做判断,个人认为还是比较方便的。

代码如下: 只写了单击双击。鼠标悬停就是enter

from PyQt5.QtWidgets import QLabel
from PyQt5.QtCore import pyqtSignal


class MyLabel(QLabel):
    mylabelSig = pyqtSignal(str)
    mylabelDoubleClickSig = pyqtSignal(str)

    def __int__(self):
        super(MyLabel, self).__init__()

    def mouseDoubleClickEvent(self, e):   # 双击
        sigContent = self.objectName()
        self.mylabelDoubleClickSig.emit(sigContent)

    def mousePressEvent(self, e):    # 单击
        sigContent = self.objectName()
        self.mylabelSig.emit(sigContent)

    def leaveEvent(self, e):  # 鼠标离开label
        print("leaveEvent")
    
    def enterEvent(self, e):  # 鼠标移入label
        print("enterEvent")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值