如何将 wx.Frame 保持在顶部,不仅是 parent 框架而且所有其他 child 框架 parent 打开?
How do I keep wx.Frame on top not only it's parent frame but all other child frames parent opens?
我可以使用以下样式在 parent 上保留一个框架:
wx.FRAME_FLOAT_ON_PARENT
但是如果这个 parent 打开其他 child windows.
它就会失去焦点
有没有办法让它在这个给定应用程序的所有 windows 之上?
我不能使用 wx.STAY_ON_TOP
因为当我 Alt-Tab 到其他进程时它总是在最前面。
最简单的解决方案(没有看到代码)可能是
1.将frame绑定到EVT_KILL_FOCUS
,然后从绑定的事件中调用frame.SetFocus()
。缺点是在该框架上有多个小部件会使事情变得复杂,因为您必须绑定到每个小部件。要获取具有焦点的框架,请调用 wx.GetActiveWindow()
.
2.绑定另一个windows到EVT_ACTIVATE
然后调用frame.SetFocus()
重新激活正确的框架。
3. 尝试在您显示的其他帧上调用 frame.ShowWithoutActivating
以防止它们接收焦点。
4. 以上的一些组合
我可以使用以下样式在 parent 上保留一个框架:
wx.FRAME_FLOAT_ON_PARENT
但是如果这个 parent 打开其他 child windows.
它就会失去焦点有没有办法让它在这个给定应用程序的所有 windows 之上?
我不能使用 wx.STAY_ON_TOP
因为当我 Alt-Tab 到其他进程时它总是在最前面。
最简单的解决方案(没有看到代码)可能是
1.将frame绑定到EVT_KILL_FOCUS
,然后从绑定的事件中调用frame.SetFocus()
。缺点是在该框架上有多个小部件会使事情变得复杂,因为您必须绑定到每个小部件。要获取具有焦点的框架,请调用 wx.GetActiveWindow()
.
2.绑定另一个windows到EVT_ACTIVATE
然后调用frame.SetFocus()
重新激活正确的框架。
3. 尝试在您显示的其他帧上调用 frame.ShowWithoutActivating
以防止它们接收焦点。
4. 以上的一些组合