我正在分析图像,需要一些时间来处理。当用户单击“分析”按钮时,我想弹出一个对话框。我需要它是无模式的,以便它不会中断我的应用程序的流程(因此分析实际上是在进行的)。我只希望它显示“正在分析图像...”,直到分析完成为止,此时它消失了(这意味着我不需要任何按钮)。这是我到目前为止的内容:
class MessageDialog(wx.Dialog):
def __init__(self, message, title):
wx.Dialog.__init__(self, None, -1, title,size=(300, 120))
self.CenterOnScreen(wx.BOTH)
text = wx.StaticText(self, -1, message)
box = wx.BoxSizer(wx.VERTICAL)
box.Add(text, 1, wx.ALIGN_CENTER, 10)
self.SetSizer(box)
我从主应用程序框架使用以下命令调用它:
msg_dialog = MessageDialog("Analyzing image...", "Analyzing")
msg_dialog.Show()
# Do some stuff.....
msg_dialog.Destroy()
当我使用msg_dialog.Show()时,“分析图像...”文本不显示。如果我将其更改为msg_dialog.ShowModal(),则会显示文本。我不能使用ShowModal(),因为它会暂停我的程序,从而破坏了盒子的用途。有什么想法吗?谢谢您的帮助。
您需要调用wxWindow::Update()
以强制更新屏幕上的控件,而不返回事件循环。
您也可以只使用wxBusyInfo。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句