wxpython wx.AboutBox 单实例

2 投票
2 回答
750 浏览
提问于 2025-04-16 21:10

我还在学习WxPython,遇到了一个简单的问题。

我很喜欢wx.AboutBox这个类,它可以管理如何向用户展示版权、许可和其他信息……我可不想从头开始自己做一个,虽然我能做到。

问题是,如果我点击一个按钮弹出AboutBox,似乎如果一直点击这个按钮,就会出现多个相同的AboutBox窗口……这样一来,就会出现很多窗口,看起来挺尴尬的。根据我了解的情况,似乎没有办法调用ShowModal()这个函数,来获取AboutBox模板中关闭按钮的ID,然后进行一些处理,确保只运行一个实例。

我想知道怎么解决这个问题……我希望只出现一个wx.AboutBox,如果这个类因为某些限制不能做到,那我就得考虑最后自己做一个了。

谢谢

2 个回答

0

看起来你还没有解决这个问题。在wxPython中,有一个叫做“SingleInstanceChecker”的类。我觉得这就是你需要的东西。

http://wxpython.org/Phoenix/docs/html/SingleInstanceChecker.html

0

自己创建一个关于框(AboutBox)对话框其实很简单。这里有一篇文章介绍了其中一种方法:http://www.blog.pythonlibrary.org/2008/06/11/wxpython-creating-an-about-box/,或者你也可以直接使用一个通用消息对话框(GenericMessageDialog)。可以查看wxPython的演示,或者看看这篇文章:http://www.blog.pythonlibrary.org/2010/07/10/the-dialogs-of-wxpython-part-2-of-2/

撰写回答