2016-08-12 182 views
-1

我是一名新程序員。我剛剛從python學習了Tkinter,爲我的代碼創建了一個窗口。我想創建一個每30秒循環一次的代碼並更改窗口上的文本。這是我到目前爲止。Python Tkinter運行循環

import time 
from Tkinter import * 
root = Tk() 
t=1 
while t <= 100: 
    thelabel = Label(root, Text=t) 
    thelabel.pack() 
    root.mainloop() 
    time.sleep(30) 
    t += 1 

但是這段代碼由於某種原因不起作用。 錯誤代碼:

Traceback (most recent call last): 
    File "File.py", line 6, in <module> 
    thelabel = Label(root, Text=t) 
    File "/user/lib/python2.7/lib-tk/Tkinter.py", line 2590, in __init__ 
    Widget.__init__(self, master, 'label', cnf, kw) 
    File "/user/lib/python2.7/lib-tk/Tkinter.py", line 2089, in __init__ 
    (widgetName, self._w) + extra + self._options(cnf)) 
tkinter.TclError: unknown option "-Text" 

(我有固定的錯字從之前)

+0

你的意思是說',而T <= 100'?另外,你到底意味着什麼「不起作用」? – Anonymous

+0

請修復錯字,運行它,然後發佈你得到的錯誤或描述它顯示的行爲以及所需的行爲。 –

+0

我使用了給定的代碼,我相信你應該將'Label(root,Text = t)'變成'Label(root,text = t)'。這應該修復錯誤代碼。 –

回答

0

要更新Label,有使用textvariableStringVar沿着一個選項。看到這個頁面:類似這樣的http://effbot.org/tkinterbook/label.htm

東西:

v = StringVar() 
Label(master, textvariable=v).pack() 

v.set("New Text!") 
+0

需要注意的是你可以使用'textvariable'選項,但這不是唯一的方法。 –

+0

我試過你說的話,我的號碼仍然沒有改變。這裏是我的代碼: –

+0

從Tkinter導入時間* root = Tk()t = StringVar()thelable = Label(root,textvariable = t).pack()num = 1 t.set(str(num))root。當num <= 100時,mainloop():t.set(num)time.sleep(30)num + = 1 –