我正在使用python& amp; wxPython的。我有一个列表框,我需要将它直接更新才能用作日志。
我只是使用Append()函数完成了这个操作,但添加到列表框的文本直到过程结束才显示,而不是在执行Append命令时显示。我知道这是因为每次插入后我都会打印列表框的大小。
def writeLog(self, text):
self.log.Append(text)
print self.log.GetStrings().__len__()
现在,为了检查目的,我正在调用一个包含以下代码的脚本:
parent.writeLog("aaaaaa")
sleep(1)
parent.writeLog("aaaaaa")
sleep(1)
parent.writeLog("aaaaaa")
我尝试过这些答案,但我不能让它们适合我: Update a ListBox in wxPython wxPython: Update wx.ListBox list
那么,如何在调用writeLog函数后立即在屏幕上看到listBox更新?可能吗?谢谢!
答案 0 :(得分:1)
您可以在此处选择一些选项,最简单的方法是在您希望更新ui时拨打wx.Yield()
,以便在Append
来电后
另一个解决方案是获取需要在单独的线程中添加的任何文本,然后通过custom event或pubsub将其发送回主线程,然后可以Append
到列表框