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