gpt4 book ai didi

macos - 如何使用 wxpython 禁用 OSX 中的窗口关闭按钮?

转载 作者:行者123 更新时间:2023-12-02 17:55:55 24 4
gpt4 key购买 nike

我正在使用 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

您还应该确保在 __init__ 中调用 wx.App.SetMacExitMenuItemId( [ID OF YOUR EXIT MENU ITEM HERE] ) 以便退出项目在您的将上下文菜单路由到正确的菜单处理程序。

当窗口关闭时,这会给你一个漂亮的 Mac 式隐藏效果。您需要注意的是,应用程序仍在运行,并且可以调用其菜单,因为菜单栏仍在屏幕顶部。在菜单事件处理程序中对 self.Show() 进行战略性调用是您的 friend 。

当您的应用程序窗口隐藏时,您还可以充分利用 wx.TaskBarIcon 与 Dock 进行良好的交互(例如,单击 Dock 来重新显示窗口)。

关于macos - 如何使用 wxpython 禁用 OSX 中的窗口关闭按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1054722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com