0

我希望我的窗口大部分时间都不可见,但是如果用户切换到另一个应用程序,可以在热键上到达屏幕顶部并再次隐藏。

在我的热键处理程序中,我使用

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 一样正确显示

4

1 回答 1

0

您必须使用窗口管理器来激活窗口。我为此目的使用 wmctrl(通过 kwin 的 kde 的 dbus 找不到相同的功能)。

于 2010-06-03T12:05:40.050 回答