我想制作一个抬头显示器,弹出它的框架,从前一个应用程序中获取焦点,然后在完成后将焦点重新放回该应用程序。
wxPython框架有Hide
和Show
方法可以工作但不关注应用程序。此外,您认为会SetFocus
这样做但不会。
我发现了一个令人讨厌的黑客行为。您可以保存应用程序状态并关闭应用程序而不是隐藏,而不是隐藏和显示框架。然后当你想再次展示时,你会在一个新的multiprocessing.Process
中引发一个新的。虽然很难理想。我希望有人有更好的东西。
为了澄清,我正在尝试获得键盘焦点,而不仅仅是将帧放在堆栈顶部。
此问题可能特定于OS X。
答案 0 :(得分:2)
您可以通过在框架上调用Raise
来窃取焦点。还可以应用wx.STAY_ON_TOP
样式标志。然后,您可以使用框架的Show
和Hide
方法使其正常工作。
根据您想要做什么,您可以查看ToasterBox小部件。我不记得它是否真的偷了焦点,但它只是弹出并自行消失,这在某些情况下很方便。