【发布时间】:2020-03-06 15:02:01
【问题描述】:
如果我在 QDialog 中有 2 个按钮,按钮 A 和按钮 B。当我鼠标单击 buttonA 并将光标移动到仍然单击 buttonB 的鼠标时,我无法检测到 HoverEnter 事件。这可能是由于 pyqt 在 buttonA 处设置了鼠标抓取。在输入buttonB时单击鼠标时,我找不到检测输入事件的方法。 示例代码:
class MainDialog(QtWidgets.QDialog):
def __init__(self, parent=None):
super(MainDialog, self).__init__()
self.installEventFilter(self)
self.buttonA= QtWidgets.QPushButton(MainDialog)
self.buttonB= QtWidgets.QPushButton(MainDialog)
self.buttonA.installEventFilter(self)
self.buttonB.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QtCore.QEvent.HoverEnter:
print("HOVERE ENTER")
return True
我的平台是 python 3.7 和 pyqt 5 上的 windows 10
我还尝试在第一次鼠标单击后忽略()事件,以丢失鼠标抓取以及 if self.buttonB.underMouse():(在事件过滤器中)但仍然没有运气。
【问题讨论】:
标签: python windows user-interface pyqt pyqt5