开发者

Detecting focus-out event on a frame

开发者 https://www.devze.com 2023-04-04 11:23 出处:网络
I have a GtkFrame开发者_Go百科 containing a set of GtkEntries. I want to hide this GtkFrame when the focus is removed from the GtkFrame.

I have a GtkFrame开发者_Go百科 containing a set of GtkEntries. I want to hide this GtkFrame when the focus is removed from the GtkFrame. I connected an handler to the "focus-out-event" signal of the frame, but it nevers get's invoked.

Any ideas on how to achieve this ?


Probably that your frame just never had the focus !

Try to give it the focus first :

 theFrame.grab_focus()

Hope it works (I didn't test it)


"So what I need to "detect" is when the focus moves out of an element contained on the frame"

You may connect an event "focus-out-event" to every entry of your frame such as :

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

I still did not test it, but will have more time this evening.

0

精彩评论

暂无评论...
验证码 换一张
取 消