繁体   English   中英

wxPython MessageDialog-如何查询状态?

[英]wxPython MessageDialog - How to query status?

我正在运行一个wxTimer,我想在打开MessageDialog之前先停止它,然后在MessageDialog关闭后重新启动。

我该怎么做? 我没有找到任何可以告诉我对话框是否已关闭的方法。

目前,计时器基本上只是继续滴答,并且每次滴答都会打开越来越多的窗口:(

希望您能够帮助我。 谢谢!

wxPython实际上并没有确定MessageDialog是否打开的任何机制。 相反,您可以手动跟踪对话框是否打开。

如果使用ShowModal打开MessageDialog,则关闭对话框时将返回ShowModal调用。 您可以在调用ShowModal之前使用设置为True的标志,然后再使用False设置标志,例如:

self.is_dialog_open = True
dialog.ShowModal()
self.is_dialog_open = False

然后,您的wx.Timer调用的方法可以使用self.is_dialog_open来确定对话框是否打开。

根据应用程序的结构,您可能希望将此标志存储在其他对象中而不是self

(我不能保证此代码不会出现争用情况。如果您的计时器碰巧在ShowModal()返回之后但self.is_dialog_open设置回False之前检查是否打开了对话框,则您的计时器会在实际上关闭对话框的情况下认为对话框是打开的。希望这对您来说不是一个严重的问题。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM