在我的wxPython GUI中,wx.BusyInfo小部件不再起作用。我正在开发OSX,最近又升级到El Capitan。
下面的简单代码不再适用于我可用的任何wx版本(“ 3.0.2.0”或“ 2.9.2.4”)。据我所知,wx.BusyInfo不再显示。不幸的是,我不知道小部件何时停止出现。
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, size=(450, 350))
self.panel = wx.Panel(self)
btn = wx.Button(self.panel, wx.ID_ANY, "Do thing")
self.Bind(wx.EVT_BUTTON, self.do_thing)
self.Centre()
self.Show()
def do_thing(self, event):
wait = wx.BusyInfo('Please wait...')
time.sleep(5)
del wait
关于这个问题的原因或解决方案有什么想法吗?
最佳答案
似乎有关忙信息窗口的绘制事件的处理时间可能有所更改。您所看到的只是在完成sleep
之后才传递paint事件。如果您有机会在忙于阻塞之前(例如之前调用wx.Yield(True)
)进行绘制,那么您应该会看到它可以与早期版本的OSX一起工作。更好的是,如果您可以组织忙碌的任务以使其定期产生,则系统可以执行一些操作,例如保持忙碌信息面板的更新并显示真正的忙碌光标,而不是旋转的沙滩球。
关于python - wxPython BusyInfo小部件不再起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34007958/