2015-10-15 41 views
0

我有一個主循環,並希望在tkinter顯示中監視我的進程中發生更改的值。如何更新單獨(主)循環中的TKinter顯示?

我認爲是這樣的:

from Tkinter import * 
import thread 
import time 


class monitor(Frame): 

    def __init__(self): 

     self.root=Tk() 
     Frame.__init__(self, self.root) 
     self.pack() 
     self.t = StringVar() 
     Label(self.root, textvariable=self.t).pack() 

    def start(self): 
     #self.mainloop() 
     thread.start_new_thread(self.mainloop,(None,)) 

    def write(self,txt): 
     self.t.set(txt) 

#Monitoring 
m=monitor()  
m.start() 

#Main process 
for i in range(10): 
    m.write("Value is "+str(i)) 
    time.sleep(1) 

但是我不能從螺紋外側設置Tkinter的對象,我開始主循環。 (未處理的線程由...開始的異常)

我應該如何解決這個最簡單的方法?

回答

0

您不能在與創建窗口小部件的位置不同的線程中運行mainloop。相反,將你的「主進程」移動到一個線程中。