On Sep 7, 9:42 pm, [EMAIL PROTECTED] wrote: > On Sep 7, 3:10 am, Jimmy <[EMAIL PROTECTED]> wrote: > > > > > Hi, wxPython is cool and easy to use, But I ran into a problem > > recently when I try to write a GUI. > > The thing is I want to periodically update the content of StatixText > > object, so after create them, I pack them into a list...the problem > > comes when I later try to extract them from the list! I don't know > > why? > > my code is as following: > > > import wx, socket > > import thread > > > class MyFrame(wx.Frame): > > > firstrun = 0 > > def __init__(self): > > wx.Frame.__init__(self, None, -1, 'Notifier') > > self.panel = wx.Panel(self, -1) > > self.length = 50 > > self.scale = 0.6 > > self.count = 5 > > self.size = wx.Frame.GetSize(self) > > self.distance = self.size[1] / self.count > > self.labellist = [] > > self.gaugelist = [] > > > def ParseAndDisplay(self, data): > > print "Successful access to main Frame class" > > print 'And receive data: ', data > > if MyFrame.firstrun == 0: > > print 'First time run' > > items = 3 > > for i in range(items): > > > > self.labellist.append(wx.StaticText(self.panel, -1, data+str(i), > > (150, 50+i*20), (300,30))) > > MyFrame.firstrun = 1 > > else: > > self.labellist[0].SetLabel('AAA')//PROGRAM WILL > > ABORT HERE!!! > > self.labellist[1].SetLabel("Guo") > > self.labellist[2].SetLabel("Qiang") > > > class NetUdp: > > > def __init__(self): > > self.port = 8081 > > self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) > > self.s.bind(("", self.port)) > > print "Listening on port", self.port > > > def recvdata(self): > > data, addr = self.s.recvfrom(1024) > > return data > > > def netThread(): > > netudp = NetUdp() > > while True: > > data = netudp.recvdata() > > frame.ParseAndDisplay(data) > > > if __name__ == '__main__': > > firstrun = 0 > > app = wx.PySimpleApp() > > frame = MyFrame() > > frame.Show() > > # start network thread first > > id = thread.start_new_thread(netThread, ()) > > # main wxpython loop begins > > app.MainLoop() > > > I know the code is ugly, but can anyone really save me here! > > If you use threads that update the GUI, you need to take a look at the > following wiki page:http://wiki.wxpython.org/LongRunningTasks > > I've used the techniques therein and they *just work*. I'm not sure if > you can set values on items in a list or not. I've tried that sort of > thing and sometimes it works and sometimes it doesn't. > > The wxPython group is probably the best place to ask these questions > anyway:http://www.wxpython.org/maillist.php > > Mike
Thanks for your help! It seems work! Another question: I create a progress bar, and on creation, it will be displayed, How can I invisualize it when later I no longer need it? -- http://mail.python.org/mailman/listinfo/python-list