PYQT5标签类控件没有象按纽自带的鼠标单击事件函数,只能用自定义信号来响应鼠标单击,常规只需重载鼠标按下或释放事件中处理逻辑代码即可,但如果有鼠标按下后在控件表面划过一区域再松开按键,则严格意义讲这不是单击了,是拖动了一矩形,如对逻辑有特殊的处理,就要判断到底鼠标的此动作是单击还是拖动,再分别处理对应的逻辑代码,下面作了一个判断的示例程序,供初学都参考。
import sys
import PyQt5
from PyQt5 import *
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
#########################################################################################
class MyMainFrm(QMainWindow):
def __init__(self, parent=None):
super(MyMainFrm, self).__init__(parent)
self.setWindowIcon(QIcon("5G.JPG"))
self.setWindowTitle('鼠标单击标签控件示例')
self.resize(900,900)
self.label_Demo = MyLabelDemo(self)
# 设置label的尺寸
self.label_Demo.setMaximumSize(800,880)
self.label_Demo.setGeometry(10, 5, 800,880)
#为标签信号sign_clicked(成员变量定义