Python 3.x 将点击信号添加到任何QWidget不会';我不支持
我非常需要让我的QLineEdit在用户点击后立即清除,但我发现没有信号clicked支持QLineEdit,所以我搜索直到我找到下面的代码来执行任务,它工作正常,但我发现它也响应键盘按下事件,不仅是鼠标点击事件,我无法解释原因,所以任何人都可以帮助Python 3.x 将点击信号添加到任何QWidget不会';我不支持,python-3.x,user-interface,pyqt5,Python 3.x,User Interface,Pyqt5,我非常需要让我的QLineEdit在用户点击后立即清除,但我发现没有信号clicked支持QLineEdit,所以我搜索直到我找到下面的代码来执行任务,它工作正常,但我发现它也响应键盘按下事件,不仅是鼠标点击事件,我无法解释原因,所以任何人都可以帮助 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * def clickable(widget): class Filter(QObject):
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
def clickable(widget):
class Filter(QObject):
clicked = pyqtSignal()
def eventFilter(self, obj, event):
if obj == widget:
if event.type() == QEvent.MouseButtonPress:
if obj.rect().contains(event.pos()):
self.clicked.emit()
return True
return False
filter = Filter(widget)
widget.installEventFilter(filter)
return filter.clicked
代码正常运行,问题出在我的IDE中我已经测试了你的代码,只有当用鼠标按下时才会发出信号。你在QlineEdit或其他设备上进行过测试吗?是的,使用QlineEdit,这是我的测试:你的代码看起来很接近我的代码,但对我来说,每次点击鼠标或键盘上的键都会有反应我对此表示怀疑,我认为你执行得很糟糕。您可以共享您的完整代码。