如何解决PyQt5 eventFilter不处理事件
使用Qt Designer创建并使用pyuic5转换为Python的复杂GUI时遇到了问题。
GUI有许多标签(QLabels)-其中一个是bmp文件。将鼠标悬停在此特定图像上时,我想捕获鼠标位置,然后将其用作x / y变量,或者至少打印文本/确认鼠标在那里。代码如下(重要的片段):
class Ui_MyGUI(object):
def setupUi(self,MyGUI):
MyGUI.setObjectName("MyGUI")
MyGUI.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
MyGUI.resize(1114,259)
MyGUI.setStyleSheet("QWidget {\n"
" <lots of stuff > "
)
MyGUI.setLocale(QtCore.QLocale(QtCore.QLocale.English,QtCore.QLocale.UnitedKingdom))
self.centralwidget = QtWidgets.QWidget(MyGUI)
self.centralwidget.setObjectName("centralwidget")
(...)
self.label_17 = QtWidgets.QLabel(self.tab_2)
self.label_17.setGeometry(QtCore.QRect(440,30,111,131))
self.label_17.setText("")
self.label_17.setPixmap(QtGui.QPixmap("logo.bmp"))
self.label_17.setScaledContents(False)
self.label_17.setAlignment(QtCore.Qt.AlignCenter)
self.label_17.setObjectName("label_17")
self.label_17.installEventFilter(self.label_17)
def eventFilter(self,source,event):
if event.type() == QtCore.QEvent.MouseMove:
if event.buttons() == QtCore.Qt.NoButton:
self.label_4.setText("Simple mouse motion")
elif event.buttons() == QtCore.Qt.LeftButton:
self.label_4.setText("Left click drag")
elif event.buttons() == QtCore.Qt.RightButton:
self.label_4.setText("Right click drag")
elif event.type() == QtCore.QEvent.MouseButtonPress:
if event.button() == QtCore.Qt.LeftButton:
self.label_4.setText("Press!")
return super(Window,self).eventFilter(source,event)
由于某种原因,根本无法检测/识别事件。你能告诉我我做错了什么,或者至少指出了我正确的方向吗?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。