Python 3.x 将点击信号添加到任何QWidget不会';我不支持

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):

我非常需要让我的QLineEdit在用户点击后立即清除,但我发现没有信号clicked支持QLineEdit,所以我搜索直到我找到下面的代码来执行任务,它工作正常,但我发现它也响应键盘按下事件,不仅是鼠标点击事件,我无法解释原因,所以任何人都可以帮助

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,这是我的测试:你的代码看起来很接近我的代码,但对我来说,每次点击鼠标或键盘上的键都会有反应我对此表示怀疑,我认为你执行得很糟糕。您可以共享您的完整代码。