wxpython:是否有更快的方法将大量文本插入文本控件?

wxpython: Is there a quicker method for inserting large quantities of text into text controls?

我现在正在用 wxpython 编写 GUI,其功能之一是文本控件。此文本控件通常需要插入数以千计的不同长度的数字。当它被数据填充时,它需要很长时间(可能 30 秒或更长时间)。

只是想知道,有没有一种方法可以用数据填充文本控件,使其更快地完成?谢谢。

我想这取决于延迟是由于获取数字还是加载文本控件引起的。
如果是文本控件,可以把数据预加载一个变量,然后一键加载。

import wx
import time
class test(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)
        self.panel = wx.Panel(self, wx.ID_ANY)
        self.tc = wx.TextCtrl(self.panel, wx.ID_ANY, size=(300,400),
                        style = wx.TE_MULTILINE|wx.TE_READONLY|wx.VSCROLL)
        text=""
        start = time.time()
        for i in range(1,30000):
            text+=str(i)+'\n'
#            self.tc.AppendText(str(i)+"\n")
        self.tc.WriteText(text)
        self.Show()
        end = time.time()
        print (end - start)

if __name__ == '__main__':
    app = wx.App()
    frame = test()
    app.MainLoop()

在这里,我用数字构建 text,然后用 WriteText.
加载一次 如果您注释掉 text=text+str(i)+'\n'self.tc.WriteText(text) 行并取消注释 self.tc.AppendText(str(i)+"\n") 行(一次加载一个数字的文本控件),您应该会看到第一种方法的运行速度快了好几倍。至少在我的盒子上是这样。