我正在使用wxpython的osx应用程序。当用户单击窗口关闭按钮时,我想将窗口最小化为停靠栏,以便可以从停靠栏中恢复窗口。我怎样才能做到这一点?目前我有问题恢复窗口,因为当用户点击关闭按钮时会被破坏。我怎样才能防止呢?提前如何使用wxpython禁用OSX中的窗口关闭按钮?
2
A
回答
0
你就不能绑定事件EVT_CLOSE
,并尽量减少使用,而不是你的处理器收盘为EVT_ICONIZE
...
def __init__(self):
...
self.Bind(wx.EVT_CLOSE, self.onCloseWindow)
...
def onCloseWindow(self, event):
... do something else instead of closing ...
...
5
方式
感谢我做到这一点是这样的:
在__init__
方法中,为wx.EVT_CLOSE
事件和一个菜单项设置了“真正”退出选项。你需要这个或者你永远不能关闭你的程序。
def OnClose(self,evt):
#Turn closes into hides unless this is a quit application message/or OS shutting down
if evt.CanVeto():
self.Hide()
evt.Veto()
else:
#if we don't veto it we allow the event to propogate
evt.Skip()
def OnMenuExit(self,evt):
#Event handler for exit menu item
self.Close(force=True) #Stops the close handler vetoing it
你也应该确保在__init__
你叫wx.App.SetMacExitMenuItemId([ID OF YOUR EXIT MENU ITEM HERE])
这样在您的船坞上下文菜单路线退出项目到您的正确的菜单句柄。
当窗口关闭时,这会为您提供一个很好的mac-ish hide。您需要意识到应用程序仍在运行,并且可以调用其菜单,因为菜单栏仍然在屏幕的顶部。在菜单事件处理程序中对self.Show()
的战略调用是您的朋友。
当你的应用程序窗口被隐藏时(例如点击dock来重新显示窗口),你也可以很好地利用wx.TaskBarIcon与dock进行良好的交互。
相关问题
- 1. 如何禁用Windows上的Perl/Tk窗口关闭('X')按钮
- 2. 如何使用按钮关闭窗口(window.close()不起作用)?
- 3. 关闭应用程序的窗口(OSX)
- 4. 如何使用触发按钮关闭弹出窗口
- 5. 如何禁用excel关闭按钮?
- 6. DockPanel禁用关闭按钮
- 7. Form.GotFocus禁用关闭按钮
- 8. 如何打开链接按钮的弹出窗口并使用弹出窗口中的按钮关闭它?
- 9. 如何禁用使用Qt的Alt + F4窗口关闭?
- 10. 如何使用C#编码在Windows窗体中禁用关闭按钮
- 11. 使用弹出窗口中的按钮关闭Safari弹出窗口
- 12. 如何在wxpython中点击按钮后禁用按钮?
- 13. 关闭按钮上的窗口单击
- 14. 禁用windows窗体中的关闭按钮
- 15. 在Install4J中禁用关闭按钮
- 16. 如何关闭弹出式窗口中的按钮的自举弹出窗口?
- 17. 如何处理可可中的窗口关闭按钮
- 18. 如何使用wxpython获得禁用按钮的点击?
- 19. monomac - 如何在单击主窗口中的按钮时关闭子窗口
- 20. 窗口关闭按钮劫持雪豹
- 21. 关闭窗口按钮单击
- 22. 用模态窗口中的按钮替换关闭图标
- 23. ExtJS的 - 禁用Ext.window.Window关闭按钮
- 24. 如何使用WM_CLOSE关闭子窗口?
- 25. 如何使用jQuery关闭窗口
- 26. 使用子窗口关闭父窗口。
- 27. Errorprovider在使用窗口关闭按钮(X)时显示错误
- 28. 子WebBrowser窗口上的“关闭”按钮关闭父窗口(.NET,winforms)
- 29. 如何通过按下按钮来关闭Tkinter窗口?
- 30. 使用wmctrl关闭窗口