【发布时间】:2017-04-04 20:26:09
【问题描述】:
我可以使用样式将框架保持在父级之上:
wx.FRAME_FLOAT_ON_PARENT
但是如果这个父窗口打开其他子窗口,它就会失去焦点。
有没有办法让它在这个给定应用程序的所有窗口之上?
我不能使用wx.STAY_ON_TOP,因为当我 Alt-Tab 到其他进程时,它总是在最前面。
【问题讨论】:
标签: wxpython
我可以使用样式将框架保持在父级之上:
wx.FRAME_FLOAT_ON_PARENT
但是如果这个父窗口打开其他子窗口,它就会失去焦点。
有没有办法让它在这个给定应用程序的所有窗口之上?
我不能使用wx.STAY_ON_TOP,因为当我 Alt-Tab 到其他进程时,它总是在最前面。
【问题讨论】:
标签: wxpython
最简单的解决方案(没有看到代码)可能是
1. 将框架绑定到EVT_KILL_FOCUS,然后从绑定事件中调用frame.SetFocus()。缺点是在该框架上有多个小部件会使事情复杂化,因为您必须绑定到每个小部件。获取具有焦点的帧调用wx.GetActiveWindow()。
2. 将其他窗口绑定到EVT_ACTIVATE,然后调用frame.SetFocus()重新激活正确的框架。
3.尝试在您正在显示的其他帧上调用frame.ShowWithoutActivating,以防止它们接收焦点。
4.以上的一些组合
【讨论】: