将点击信号添加到任何QWidget并不支持它

时间:2018-03-08 18:39:25

标签: python-3.x user-interface pyqt5

我非常需要在用户点击它后立即让我的QLineEdit清除,但我发现没有信号点击支持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

1 个答案:

答案 0 :(得分:0)

代码正确,问题出在我的IDE中