焦点事件发生了变化?

时间:2012-12-20 13:25:48

标签: python qt user-interface pyqt pyqt4

我正在将我的Visual Basic 6程序移植到PyQt。

我需要调用一个函数来设置一些小部件启用/禁用,我不想多次调用一个函数,所以我发现了一个事件,当焦点从一个小部件变为另一个小部件时,我可以调用我的小部件管理器功能。

我在PyQt中寻找相同的东西,但没有成功。有什么想法吗?

2 个答案:

答案 0 :(得分:8)

不确定您是在谈论窗口小部件获取/失去焦点的窗口还是嵌入另一个获得/失去键盘焦点的窗口小部件,但是这两种情况都在这里

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

答案 1 :(得分:4)