在我的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/

10-15 09:16