检测框架中的失去焦点事件

1 投票
1 回答
973 浏览
提问于 2025-04-17 02:06

我有一个GtkFrame,里面放了一些GtkEntries(就是输入框)。我想在这个GtkFrame失去焦点的时候把它隐藏起来。于是我给这个框架连接了一个处理函数,用来响应“失去焦点”的事件,但这个处理函数从来没有被调用过。

有没有什么办法可以做到这一点呢?

1 个回答

1

可能是你的框架从来没有获得焦点!

先试着给它设置焦点:

 theFrame.grab_focus()

希望这样能解决问题(我还没测试过)


“我需要‘检测’的是焦点何时移出框架中的某个元素”

你可以给框架中的每个元素连接一个“失去焦点事件”,比如:

def outOfFocus(self, widget):
    focusInFrame = False
    for child in widget.get_parent():
        if child.has_focus():
            focusInFrame = True
    if focusInFrame == False:
        theFrame.hide()

我还没测试过,但今晚会有更多时间。

撰写回答