Схватить фокус для кадра после нажатия ярлыка в wxPython на GNOME - PullRequest
0 голосов
/ 22 декабря 2009

Я создаю приложение, которое использует глобальные сочетания клавиш (используя python-keybinder ), но есть проблема. Рамка поднимается и поднимается правильно, но не имеет фокуса. Я должен нажать на рамку.

После нажатия сочетания клавиш появляется рамка, но она не сфокусирована. Я вижу, что кадр, на котором я был ранее сфокусирован (например, мой кадр Firefox), все еще имеет фокус (то есть строка заголовка остается белой и жирной) Только после того, как я нажму на рамку моего приложения, строка заголовка Firefox станет серой и тусклой.

Я пытаюсь SetFocus и CaptureMouse, но ничего не делаю. FindFocus и GetCapture возврат None.

Это происходит только в Ubuntu (GNOME). В Windows кадр сразу же фокусируется. Есть ли способ заставить GNOME сосредоточиться на моем приложении / фрейме?

1 Ответ

0 голосов
/ 22 декабря 2009

Как вы показываете frmae изначально, с frame.Show ()? Я не уверен, что вы говорите, что у самого фрейма нет фокуса (но / или у дочернего элемента фрейма), или у вашего приложения нет фокуса?

Вы вызываете SetFocus в кадре, который инициализирует все ваши виджеты? Это может быть проблемой сосредоточения внимания на ребенке кадра. Попробуйте использовать wx.CallAfter (self.SetFocus) в конце вашего кадра. Метод init - он должен убедиться, что фокус установлен после того, как все создание виджета выполнено

...