【问题标题】:wxPython update a listbox livewxPython 实时更新列表框
【发布时间】:2012-09-18 12:16:32
【问题描述】:

我正在使用 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")

我已经尝试了这些答案,但我无法让它们为我工作: Update a ListBox in wxPython wxPython: Update wx.ListBox list

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

【问题讨论】:

    标签: python listbox wxpython live


    【解决方案1】:

    你有几个选择,最简单的可能是当你想要更新 ui 时调用 wx.Yield(),所以在你调用 Append 之后

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

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 2011-10-03
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多