焦点改变的事件?

2024-04-18 18:58:45 发布

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

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

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

我在PyQt找同样的东西,但是没有成功。知道吗?


Tags: 函数程序管理器basic部件事件pyqt焦点
2条回答

信号^{}就是你想要的。

不确定您所说的是小部件的窗口获得/失去焦点,还是嵌入到另一个键盘获得/失去焦点中的小部件,但是这两种情况都适用

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

相关问题 更多 >