wxPython实时更新列表框

wxPython实时更新列表框,python,listbox,wxpython,live,Python,Listbox,Wxpython,Live,我正在使用python&wxPython开发一个程序。我有一个列表框,我需要它被实时更新以用作日志 我只是通过Append()函数完成了这项工作,但是添加到列表框中的文本直到过程结束时才会显示,而不是在执行Append命令时显示。我知道这一点,因为每次插入后,我都会打印列表框的大小 def writeLog(self, text): self.log.Append(text) print self.log.GetStrings().__len__() 现在,出于检查目的,我正在

我正在使用python&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")
我尝试过这些答案,但无法让它们对我有用:


那么,在调用writeLog函数之后,如何在屏幕上看到列表框的更新呢?可能吗?谢谢

这里有几个选项,最简单的方法可能是在需要更新ui时调用
wx.Yield()
,因此在
调用后追加

另一种解决方案是获取需要添加到单独线程中的任何文本,然后通过or将其发送回主线程,or可以
附加到列表框中