python无值返回

2024-04-26 17:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

class MyWindow():

    class Filter(QtCore.QObject) :

        def eventFilter(self, widget, event):                         
            return event.type() == QtCore.QEvent.FocusOut

    def __init__(self, ui) :
        self.ui = ui

    def mycode (self) :
        myvalue = float(self.ui.myvalueEdit.text()) 
        self._filter = self.Filter()    
        print (self.ui.myvalueEdit.installEventFilter(self._filter))

我试图截获focusEvent,我知道它会改变。在这段代码中,我试图读取eventFilter的返回值,但我总是收到None值!你知道吗


Tags: selfeventuireturndeftypewidgetfilter
1条回答
网友
1楼 · 发布于 2024-04-26 17:22:05

installEventFilter方法不返回任何内容,这就是为什么您没有得到任何内容。eventFilter方法是在事件发生时调用的回调。你知道吗

假设eventFilter的返回值指示是否已处理该事件。也就是说,如果不希望任何其他对象处理有问题的事件,则返回True。这就是为什么你不能仅仅返回True,它会消耗事件,你必须自己处理任何你返回True的事件。你知道吗

class MyWindow(QtCore.QObject):

    def eventFilter(self, widget, event):                         
        if event.type() == QtCore.QEvent.FocusOut or event.type() == QtCore.QEvent.FocusIn:
            print("Focus Changed!")
            print("Value I want to save is: " + widget.toPlainText())
            # Put the code you want to do here!
            return True 
        return False 

    def __init__(self, ui) :
        self.ui = ui

    def mycode (self) :
        myvalue = float(self.ui.myvalueEdit.text())   
        self.ui.myvalueEdit.installEventFilter(self)

相关问题 更多 >