2015-10-15 48 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。相反,将你的“主进程”移动到一个线程中。