2016-08-12 9 views
-1

Ich bin ein neuer Programmierer. Ich habe gerade von Pkhon über Tkinter erfahren, um ein Fenster für meinen Code zu erstellen. Ich möchte einen Code erstellen, der alle 30 Sekunden wiederholt wird und den Text im Fenster ändert. Hier ist was ich bisher habe.Python Tkinter läuft eine Schleife

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 

Aber dieser Code funktioniert aus irgendeinem Grund nicht. Fehlercode:

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" 

(ich aus der Zeit vor dem Tippfehler behoben haben)

+0

tun Sie damit zu sagen, 'während t <= 100'? Was meinst du genau mit "funktioniert nicht"? – Anonymous

+0

Bitte korrigieren Sie den Tippfehler, führen Sie ihn aus und geben Sie dann den Fehler ein, den Sie erhalten, oder beschreiben Sie das angezeigte Verhalten sowie das gewünschte Verhalten. –

+0

Ich habe den Code verwendet und ich glaube, Sie sollten 'Label (root, Text = t)' zu 'Label (root, text = t)' machen. Das sollte den Fehlercode beheben. –

Antwort

0

die Label zu aktualisieren, ist es eine Option textvariable zusammen mit StringVar zu verwenden. Sehen Sie diese Seite: http://effbot.org/tkinterbook/label.htm

Etwas wie folgt aus:

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

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

Es ist wichtig zu beachten, dass Sie die Option 'textvariable' verwenden können, aber es ist nicht die einzige Möglichkeit. –

+0

Ich habe versucht, was Sie gesagt haben und meine Nummer ändert sich immer noch nicht. Hier ist mein Code: –

+0

Importzeit von Tkinter importieren * root = Tk() t = StringVar() thelable = Label (root, Textvariable = t) .pack() num = 1 t.set (str (num)) root. Hauptschleife() while num <= 100: t.set (num) time.sleep (30) num + = 1 –

Verwandte Themen