Как использовать переключатели для присвоения значения переменной в Python?
Я пытаюсь присвоить значение переменной с помощью переключателя в Python со следующим кодом:
def print_me():
global payment
global membership
if studentMemString == "PY_VAR0":
membership = "STUDENT"
payment = studentMem
elif adultMemString == "PY_VAR10":
membership = "ADULT"
payment = adultMem
elif childMemString == "PY_VAR0":
membership = "CHILD"
payment = childMem
else:
pass
print(membership)
print(payment)
root = tk.Tk()
studentMem = tk.StringVar()
studentMemString = str(studentMem)
adultMem = tk.StringVar()
adultMemString = str(adultMem)
childMem = tk.StringVar()
childMemString = str(childMem)
studentRadBtn = tk.Radiobutton(root, text="Student - £19.99",
variable=studentMem, value= 19.99)
studentRadBtn.pack()
adultRadBtn = tk.Radiobutton(root, text="Adult - £34.99", variable=adultMem,
value= 34.99)
adultRadBtn.pack()
childRadBtn = tk.Radiobutton(root, text="Child - £5.99", variable=childMem,
value=5.99)
childRadBtn.pack()
button = tk.Button(root, text="click", command=print_me)
button.pack()
root.mainloop()
(обновление) Хорошо. Итак, теперь проблема в том, что когда я запускаю программу, все переключатели активны, и независимо от того, какую из них я пытаюсь нажать на единственную, которая вызывается, это первая. Почему они все выбраны?
1 ответ
В приведенном ниже коде радиокнопки меняют значение переменной v
когда выбран. Начальная стоимость v
является "2"
, поэтому 2-я кнопка выбрана по умолчанию.
import tkinter as tk
root = tk.Tk()
v = tk.StringVar()
v.set("2")
tk.Label(root, textvariable=v).pack()
tk.Radiobutton(root, text="one", variable=v, value="1").pack()
tk.Radiobutton(root, text="two", variable=v, value="2").pack()
tk.Radiobutton(root, text="three", variable=v, value="3").pack()
root.mainloop()