wxPython直播更新列表框

时间:2012-09-18 12:16:32

标签: python listbox wxpython live

我正在使用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更新?可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在此处选择一些选项,最简单的方法是在您希望更新ui时拨打wx.Yield(),以便在Append来电后

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