TextCtrl不工作,这是我的代码:wxPython的TextCtrl和无限循环问题
while 1:
localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
i = i + 1
#print str(i)
serRead = ser.readline()
serSplit = serRead.split(",")
#this works
print str(i)+', '+tempOrShock+', '+localtime+', '+serSplit[1]
#this doesn't
self.displayTextCtrl.WriteText(str(i)+', '+tempOrShock+', '+
localtime+', '+serSplit[1])
这个无限while循环是一个按钮单击事件里面,我基本上运行无限单击按钮后循环,并告诉我的TextCtrl连续写出东西,它不工作。但是,print语句工作正常。任何想法为什么这可能是这种情况?
我敢肯定,循环工作,因为“打印”语句的工作。 'readline()'方法每秒返回一个值,因此每行打印一行。你是什么意思设置一个计时器?你可以请扩展一下吗?我仍然很新的这一切.. – lamba 2011-03-10 23:14:08
@lamba:你的循环工作,但wxPython中有一个[事件循环(http://en.wikipedia.org/wiki/Event_loop)正被耽误了你循环。只要循环停止,GUI就不会更新。您的按钮事件应该可能启动一个计时器,并且该计时器的事件处理程序可以更新文本控件。我对wxpython不是很有经验,但是我找到了[示例](http://www.blog.pythonlibrary.org/2009/08/25/wxpython-using-wx-timers/)。看看是否有帮助。 – 2011-03-10 23:25:12
谢谢!我会仔细看看的。 – lamba 2011-03-10 23:30:38