代码之家  ›  专栏  ›  技术社区  ›  Ampig

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

  •  0
  • Ampig  · 技术社区  · 7 年前

    我现在正在用wxpython编写GUI,它的一个特性是文本控件。此文本控件通常需要插入10个成千上万个不同长度的数字。当它充满数据时,需要很长时间(可能30秒或更长)。

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rolf of Saxony    7 年前


    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")