2017-07-17 2 views
0

Also spielte ich mit RadioButtons herum und hatte verstanden, dass ich nur eine andere Variable benutzen musste, um separate RadioButtons zu haben. Anscheinend benötigen Sie keine separaten Container-Steuerelemente wie in vielen GUI-Systemen.Tkinter RadioButton Verschränkung

Ich versuchte dies und stellte fest, dass die beiden Gruppen verschränkt waren. Also steckte ich sie auf getrennte Behälter; einer auf einer Leinwand und der andere auf einem Rahmen. Sie sind immer noch verstrickt!

Hier ist der Code:

# Radiobuttons on a Canvas 
rvCanvas=tk.Canvas(root) 
radioVariable=1 
tk.Radiobutton(rvCanvas, text="Set to one", variable=radioVariable, value=1).pack() 
tk.Radiobutton(rvCanvas, text="Set to two", variable=radioVariable, value=2).pack() 
rvCanvas.place(x=300,y=20) 


# Radiobuttons on a Frame 
noincFrame=tk.Frame(root) 
noInd=1 
tk.Radiobutton(noincFrame, text="This one", variable=noInd, value=1).pack() 
tk.Radiobutton(noincFrame, text="That too", variable=noInd, value=2).pack() 
noincFrame.place(x=5,y=160) 

So, wie wir entwirren Radiobuttons erreichen?

+0

das Problem ist, dass Sie tkinter Variablen nicht normale Python-Variablen benötigen. Ändere 'radioVariable = 1' in' radioVariable = tk.IntVar() 'und dasselbe für deine andere Variable, dann kannst du den Wert mit' radioVariable.get() 'für ref: http://effbot.org/tkinterbook erhalten /variable.htm –

Antwort

1

Die Variablen müssen Instanzen der speziellen tkinter-Variablen sein (StringVar, IntVar, usw.).

radioVariable = tk.IntVar(value=1) 
... 
noInd = tk.IntVar(value=1) 
... 
+0

Ich hatte das bisschen über Tk-Variablen verpasst. Danke allen. –