0

Ich versuche, einen Wert auf eine Variable mit einem Optionsfeld in Python mit dem folgenden Code zuweisen:Wie verwendet man Optionsfelder, um einer Variablen in Python einen Wert zuzuordnen?

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() 

(Update) Okay, so jetzt das Problem ist, dass, wenn ich das Programm aller Radiotasten starten sind aktiv und unabhängig davon, welchen ich versuche auf den einzigen zu klicken, der angerufen wird, ist der erste. Warum sind sie alle ausgewählt?

+1

Die Variable eine der speziellen tkinter Variablen sein muss (zB: 'StringVar',' IntVar') –

+0

aber wie würde ich diese dann entweder in ein int oder eine Variable umwandeln, wie es –

+0

‚PY_VAR0‘ kehrt zurück Ich möchte den Wert dieser Variablen in eine Datenbank schreiben –

Antwort

0

Im folgenden Code ändern Radiobuttons den Wert einer Variablen v, wenn ausgewählt. Der Anfangswert von v ist "2", daher ist der 2. Radiobutton standardmäßig ausgewählt.

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() 
+0

zu bekommen und einzustellen. Okay, entsprechend wird jedes Optionsfeld 'PY_VAR0' zurückgeben? Wie würde ich den Wert einer anderen Variablen entsprechend der tatsächlichen Variablen von 'v' ändern? Je nachdem, welches Optionsfeld ausgewählt ist, ist die Variable 'x' gleich 'y'. und tun dies für jede rad-Taste –

+0

@CameronHamilton Nein in diesem Beispiel 'v.get()' wird 1, 2, 3 usw. – Nae

+0

ahhhh okay danke, so dass es keine Notwendigkeit, die Zeichenfolge var in eine Zeichenfolge in meinem Beispiel zu konvertieren code –

Verwandte Themen