wxpython 框架 "steal" 和 "return" 如何像 Dash 应用程序一样聚焦?
How can a wxpython frame "steal" and "return" focus similar to the Dash app?
我想制作一个弹出其框架的抬头显示,从前一个应用程序获取焦点,然后在完成后将焦点返回给该应用程序。
wxPython 框架有 Hide
和 Show
方法可以工作但不聚焦应用程序。此外,还有 SetFocus
你认为可以做到但实际上没有的。
更新
我发现了一个有用的讨厌的黑客。您可以保存应用程序状态并关闭应用程序而不是隐藏,而不是隐藏和显示框架。然后当你想再次展示时,你会在新的 multiprocessing.Process
中激发一个新的。虽然不太理想。我希望有人有更好的东西。
澄清
澄清一下,我正在尝试获得键盘焦点,而不仅仅是让框架位于堆栈顶部。
此问题可能特定于 OS X。
您可以通过在框架上调用 Raise
来窃取焦点。 wx.STAY_ON_TOP
样式标志也可以应用。那么您也许可以只使用框架的 Show
和 Hide
方法使其工作。
根据您具体想要做什么,您可以看看 ToasterBox 小部件。我不记得它是否真的偷走了焦点,但它只是弹出并自行消失,这在某些情况下很方便。
我想制作一个弹出其框架的抬头显示,从前一个应用程序获取焦点,然后在完成后将焦点返回给该应用程序。
wxPython 框架有 Hide
和 Show
方法可以工作但不聚焦应用程序。此外,还有 SetFocus
你认为可以做到但实际上没有的。
更新
我发现了一个有用的讨厌的黑客。您可以保存应用程序状态并关闭应用程序而不是隐藏,而不是隐藏和显示框架。然后当你想再次展示时,你会在新的 multiprocessing.Process
中激发一个新的。虽然不太理想。我希望有人有更好的东西。
澄清
澄清一下,我正在尝试获得键盘焦点,而不仅仅是让框架位于堆栈顶部。
此问题可能特定于 OS X。
您可以通过在框架上调用 Raise
来窃取焦点。 wx.STAY_ON_TOP
样式标志也可以应用。那么您也许可以只使用框架的 Show
和 Hide
方法使其工作。
根据您具体想要做什么,您可以看看 ToasterBox 小部件。我不记得它是否真的偷走了焦点,但它只是弹出并自行消失,这在某些情况下很方便。