我正在使用wxpython处理osx的应用程序.我想在用户点击窗口关闭按钮时最小化窗口到停靠栏,以便可以从停靠栏恢复它.我怎样才能做到这一点?目前我有恢复窗口的问题,因为它在用户点击关闭按钮时被破坏.我怎么能防止这种情况?
提前致谢
我这样做的方式是这样的:
在__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
Run Code Online (Sandbox Code Playgroud)
您还应该确保在__init__调用中,wx.App.SetMacExitMenuItemId( [ID OF YOUR EXIT MENU ITEM HERE] ) 以便dock上下文菜单中的quit项路由到正确的菜单处理程序.
当窗口关闭时,这会给你一个很好的mac-ish hide.您需要知道应用程序仍在运行,并且可以调用其菜单,因为菜单栏仍位于屏幕顶部.self.Show()菜单事件处理程序的战略调用是您的朋友.
当您的应用程序窗口被隐藏时,您还可以充分利用wx.TaskBarIcon与Dock进行良好的交互(例如,单击dock to reshow window).
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |