사용할 때 동시에 listctrl 새로 고침 방법 :내가 지금이 문제로 고민하고 있습니다 setstringitem 기능
을 나는 ListCtrl
오브젝트하는 TextCtrl
객체 및 버튼을 만들했습니다. 먼저 ListCtrl
객체에 데이터를 입력합니다. 버튼을 누르면 TextCtrl
객체에 문자열이 추가되고 ListCtrl
객체를 수정하려면 SetStringItem
객체를 사용합니다.
버튼 기능에서 알 수 있듯이 각 루프에 time.sleep(2)
을 추가했습니다. 단추를 눌렀을 때 문자열이 삽입 될 때마다 TextCtrl
이 새로 고쳐 지지만 ListCtrl
은 LOOP가 끝날 때까지 고정 된 다음 올바른 문자열을 표시합니다.
SetStringItem
이 호출되는 즉시 ListCtrl
개체를 새로 고치는 방법을 알고 싶습니다.
도움을 주시면 감사하겠습니다.
import wx
import sys
import time
class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, size=(450, 450))
self.panel = wx.Panel(self)
self.dl = wx.ListCtrl(self,-1,size=(300,100),style=wx.LC_REPORT)
self.dl.InsertColumn(0, 'File')
self.dl.InsertColumn(1, 'Progress')
self.dl.InsertColumn(2, 'State')
for row in range(3):
labels = [l+str(row) for l in "FILE PERCENT STATE".split()]
# sys.maxint inserts at the end of the list
index = self.dl.InsertStringItem(sys.maxint, labels[0])
self.dl.SetStringItem(index, 1, labels[1])
self.dl.SetStringItem(index, 2, labels[2])
self.Show(True)
button2 = wx.Button(self, label=u"test", pos=(15, 200), size=(60, 25))
self.Bind(wx.EVT_BUTTON, self.test, button2)
self.text = wx.TextCtrl(self, -1, pos=(80, 200), size=(200, 175), style=wx.TE_MULTILINE)
def test(self,event):
for i in range(3):
self.dl.SetStringItem(i,1,"HELLO")
self.text.AppendText("HELLO")
time.sleep(2)
app = wx.App()
Frame(None)
app.MainLoop()