0

私は次のコードでの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

変数は、特殊なTkinterの変数(例: 'StringVar'、' IntVar')のいずれかでなければなりません –

+0

が、それは「PY_VAR0」を返しているようどのように私は、int型または変数のいずれかにこれを変換します –

+0

この変数の値をデータベースに書きたいと思っています –

答えて

0

ラジオボタンは、変数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() 
+0

これに応じて各ラジオボタンが' PY_VAR0 'を返しますか?実際の変数 'v'に応じて、別の変数の値をどのように変更するのでしょうか。たとえば、ラジオボタンが選択されているかどうかによって、変数 'x'は 'y'に等しくなります。各radボタンのためにこれを行う –

+0

@CameronHamiltonこの例では 'v.get()'は1、2、3などを返します。 – Nae

+0

ahhhh大丈夫ですので、文字列varを私の例の文字列に変換する必要はありませんコード –

関連する問題