2015-08-10 4 views
1

Я настроил кадр здесь и мне нужно знать, активный диалог в главном графическом интерфейсе, так вот что я придумал:WxPython кадр не ловить EVT_SET_FOCUS

class PlotFrame (wx.Frame): 

    def __init__(self, parent, title , dialog_id): 
     wx.Frame.__init__(self, None, size=(500, 500), title=title) 
     self.parent = parent 
     self.dialog_id = dialog_id 
     self.Bind(wx.EVT_SET_FOCUS, self.on_focus) 

    def __del__(self): 
     pass 


    def on_focus(self, event): 
     print "Focus:", self.dialog_id 
     self.parent.set_active_dialog(self.dialog_id) 

Это именно то, что документация говорит, но мой обработчик событий не вызывается при нажатии на диалог. Запуск в Linux. спасибо, спасибо

ответ

2

Обычно вы не фокусируете внимание на рамке или панели. Вместо этого вы должны установить его на первый дочерний виджет в вашем пользовательском интерфейсе. Фактически, wxPython обычно будет делать это автоматически, так что если у вас есть кнопка или текстовое поле в качестве вашего первого элемента управления, обычно он будет получать фокус по умолчанию.

Я действительно не вижу смысла в настройке фокуса на рамку. Если все, что вы хотите знать, это если кадр активен, тогда вы должны привязать его к wx.EVT_ACTIVATE.

+0

Спасибо. это то, что мне нужно – Riptyde4

Смежные вопросы