2016-07-18 3 views
0

In meinem Code habe ich eine Drehbox, die der Benutzer verwendet, um die Anzahl der gewünschten Teams auszuwählen, dann werden in einem separaten Rahmen Spalten entsprechend der Anzahl der ausgewählten Teams erstellt wenn sie das Drehfeld verwenden diesen Wert ändern es ändert sich auch die Anzahl der SpaltenPython tkinter: Kontinuierliche Aktualisierung von Etiketten im Rahmen

frame=Frame(root) 
frame.pack(anchor=CENTER) 
Label(frame,text='Team selection').grid(row=0,column=0,columnspan=5) 

NumTeams=StringVar() 
Spinbox(frame,values=(1,2,3,4,5),textvariable=NumTeams).grid(row=2,column=0,columnspan=5) 

frame2=Frame(root) 
frame2.pack() 
for i in range(int(NumTeams.get())): 
    Label(frame2,text=str(i)).grid(row=0,column=i) 
    frame2.update() 

der obige Code ist ein Versuch, dies zu Erreichen, weiß jemand eine Möglichkeit, dass dies getan werden kann?

Antwort

1

Sie können das Argument command verwenden, um eine Methode anzugeben, die ausgeführt werden soll, wenn Ihre Spinbox Werte ändert. Ich bin mir nicht ganz sicher, welche Art von Spalten Sie meinen, aber hoffentlich können Sie damit arbeiten.

from Tkinter import * 

def on_spin(): 
    num_teams.set("New text") 

root = Tk() 

frame = Frame(root) 
frame.pack(anchor=CENTER) 

frame2 = Frame(root) 
frame2.pack() 

num_teams = StringVar() 
label = Label(frame2, textvariable=num_teams) 
label.pack() 

spin = Spinbox(frame, from_=1, to=5, command=on_spin) 
spin.pack() 

root.mainloop()