我把我的问题归结为这篇文章中显示的示例代码。请注意,我没有调用app.MainLoop(),因为这不是一个交互式窗口;我希望它在开始时弹出,在工作发生时显示一些进度条,并在完成时消失。wxPython - 如何强制UI刷新?
我对wxPython和wx.Yield()的理解让我相信,在某些UI工作之后调用wx.Yield()会将这些更改刷新到显示。这不会发生 - 当我运行这个脚本时,在“Hello World”应该是灰色的框。
我在做什么错?
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, size=(400,400))
self.panel = wx.Panel(self, -1)
wx.StaticText(self.panel, -1, "Hello World", (20,20))
wx.Yield()
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, -1)
self.frame.Show(True)
self.SetTopWindow(self.frame)
return True
def run():
app = MyApp(redirect=False)
import time; time.sleep(5)
run()
2012-05-30
Doug