我移植我的Visual Basic 6的程序PyQt的。
我需要调用一个函数来设置一些小部件启用/禁用所有的时间,我不想调用函数的次数太多了,所以我找到了一个事件,当焦点从一个小窗口改变到另一个窗口小部件,我可以叫我的小插件管理功能。
我正在寻找在PyQt的,但没有成功,同样的事情。 任何的想法?
我移植我的Visual Basic 6的程序PyQt的。
我需要调用一个函数来设置一些小部件启用/禁用所有的时间,我不想调用函数的次数太多了,所以我找到了一个事件,当焦点从一个小窗口改变到另一个窗口小部件,我可以叫我的小插件管理功能。
我正在寻找在PyQt的,但没有成功,同样的事情。 任何的想法?
信号QApplication::focusChanged(QWidget * old, QWidget * now)
是你想要的。
不知道您是否正在谈论的窗口小部件的窗口获取/失去焦点或嵌入另一个赢得/失去键盘焦点的窗口小部件,但这里有两种情况
class MyWidget(QtGui.QWidget):
def __init__(self, parent = None):
super(MyWidget, self).__init__(parent)
self.installEventFilter(self)
def eventFilter(self, object, event):
if event.type() == QtCore.QEvent.WindowActivate:
print "widget window has gained focus"
elif event.type()== QtCore.QEvent.WindowDeactivate:
print "widget window has lost focus"
elif event.type()== QtCore.QEvent.FocusIn:
print "widget has gained keyboard focus"
elif event.type()== QtCore.QEvent.FocusOut:
print "widget has lost keyboard focus"
return False