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
值!
答案 0 :(得分:1)
installEventFilter方法不返回任何内容,这就是为什么你得到None。您的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)