【问题标题】:pygtk: find out focused elementpygtk:找出焦点元素
【发布时间】:2023-08-17 10:50:01
【问题描述】:

我正在创建一个对话框,找出什么是焦点元素。 这就是我写的:


import gtk
import gobject

class FocusedElementPath(gtk.Dialog): 
    def __init__(self, parent, title=None):
        gtk.Dialog.__init__(self, title or 'Show path', parent)

        self.catch_within = parent      
        self.catch_focus = True

        self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)

        again_btn = gtk.Button('',gtk.STOCK_REFRESH)
        again_btn.connect('activate', self.refresh_pressed)
        again_btn.show()

        self.action_area.add(again_btn) 

        self.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)

        self.action_area.set_layout(gtk.BUTTONBOX_EDGE)
        self.path = gtk.Label()
        self.path.show()

        self.vbox.add(self.path)        

    def refresh_pressed(self, btn): 
        self.catch_focus = True

    def do_focus_out_event(self, evt):
        nl = self.catch_within.get_focus() 
        if nl:
            self.catch_within.activate_focus()
            self.path.set_text(repr(nl))    
        else:
            self.path.set_text('None')      
        gtk.Dialog.on_focus_event(self, evt)

gobject.type_register(FocusedElementPath)

问题是它返回先前聚焦的元素。 有没有办法找出当前关注的元素? 我尝试了不同的事件(对于对话框和窗口),但没有任何帮助:( 我做错了什么或者我该如何正确地做到这一点?

【问题讨论】:

    标签: python dialog gtk focus pygtk


    【解决方案1】:

    gtk.Window.get_focus(也可用于gtk.Dialog)将返回当前专注的孩子。

    反正我不太明白你想在这里实现什么......

    【讨论】:

    • 我想找出父窗口焦点元素