wxPython на KDE 4.2: всплывающее окно в верхней части экрана и скрытие назад - PullRequest
0 голосов
/ 08 июня 2009

Я хочу, чтобы моё окно было невидимым большую часть времени, но я могу добраться до экран на горячую клавишу и снова скрыться, если пользователь переключается на другой приложение.

В моем обработчике горячих клавиш я использую

self.Show() 
self.Raise() 
self.Iconize(False)

и в моем обработчике сообщений активации

self.Hide() 
self.Iconize(True) 

но окно появляется в верхней части экрана, но остается деактивированным: его цвет строки заголовка неактивен, и он мигает на панели задач как окно, требующее моего внимания и не получающее EVT_ACTIVATE. я попытался добавить self.SetFocus, но без эффекта.

И если я использую

self.Show()  
self.SetFocus()

в обработчике горячих клавиш и в моем обработчике сообщений активации

self.Hide() 

и все работает нормально, если я деактивирую свое окно, нажимая на другое окно, но если я нажму Alt-Tab, а затем вызову мое окно с помощью горячей клавиши он не появляется в верхней части экрана, а просто мигает в панель задач. Также я сделал возможность скрыть это, нажав на нее кнопку, и если я скрываю это таким образом, он также не будет отображаться правильно после как в случае с Alt-Tab

1 Ответ

0 голосов
/ 03 июня 2010

Вы должны использовать оконный менеджер для активации окон. Я использую wmctrl для этой цели (не могу найти ту же функцию через dbus для kwin для kde).

...