質問文を訂正しました。
よろしくお願いいたします。
実現したいこと
ラジオボタンを選択後、valueの値を変数に入れたい
前提
素人で恐縮ですが、ご質問お願いします。
関数内に、「あり」「なし」の2つのラジオボタンを作成しました。
変数 var に、選択したラジオボタンのvalue値を入れるように記載しました。。
しかし、処理したい関数が離れているためか、
すべて var = 0で返って来てしまいます。
「内服」ボタンクリック→日数表示のラジオボタン(ありorなし)選択→「1.貼付&実行&コピー」ボタンクリック
→print()で変数var確認も、ありorなしのいずれも0になる
→ありをvar=1、なしをvar=0で入れたい。
グローバル変数も試してみましたが、結果は同じでした。
離れた関数で、1つの変数 varを扱うのは難しいでしょうか?
ご教授のほど、よろしくお願いいたします。
Python 3.6, tkinter使用
# root.py ####################################################################### import tkinter from main_1gyou import gyou1_click # ウインドウの作成 root = tkinter.Tk() root.title('Y') root.geometry('270x60+0+920') root.resizable(0, 0) # 色・フォントの設定 normal_font = ('Meiryo UI', 7) bold_font = ('Meiryo UI', 12, 'bold') bg_color = '#87CEFA' button_color = '#468284' root.config(bg=bg_color) # ボタン gyou1_start_button = tkinter.Button(root, text='内服', font=bold_font, fg='black', bg='#c5edcd') gyou1_start_button.place(x=5, y=6, width=80, height=40) # ---------------関数の作成-------------------------------------- def gyou1_start_click(): gyou1_click() # --------------ボタン押し実行処理----------------- gyou1_start_button["command"] = gyou1_start_click # ------------------------------------------------------------- # ウインドウのループ処理 root.attributes("-topmost", True) root.mainloop() #main_1gyou.py################################################################## import tkinter def gyou1_click(): #最初の画面に戻る def return_ykg(): root_gyou1.destroy() g_1gyou = 0 # ウインドウの作成 root_gyou1 = tkinter.Tk() #! root_gyou1.title('【1出力】') #! root_gyou1.geometry('700x700+600+200') #! root_gyou1.resizable(0, 0) #! # 色・フォントの設定 normal_font_gyou1 = ('Arial', 10) normal2_font_gyou1 = ('Meiryo UI', 12) bold_font_gyou1 = ('Meiryo UI', 15, 'bold') bg_color_gyou1 = '#c5edcd' zenmen_bg_color_gyou1 = '#6c3fab' button_color_gyou1 = '#373fd4' root_gyou1.config(bg=bg_color_gyou1) #ラジオボタン frame_date = tkinter.LabelFrame(root_gyou1, text="日数の表示", foreground="green", labelanchor="nw", width=160, height=100, bd=5, bg=bg_color_gyou1, font=bold_font_gyou1) frame_date.propagate(False) # 幅と高さを指定する場合はこの設定が必要 frame_date.place(x=25, y=520) global var var = tkinter.IntVar() var.set(0) radiobutton_1 = tkinter.Radiobutton(frame_date, text='あり', variable=var, value=1, font=bold_font_gyou1, bg=bg_color_gyou1) radiobutton_2 = tkinter.Radiobutton(frame_date, text='なし', variable=var, value=0, font=bold_font_gyou1, bg=bg_color_gyou1) radiobutton_1.place(x=30, y=0) radiobutton_2.place(x=30, y=30) start_button_gyou1 = tkinter.Button(root_gyou1, text='1.貼付&実行&処理', font=bold_font_gyou1, fg='white', bg=button_color_gyou1) start_button_gyou1.place(x=280, y=530, width=200, height=70) # ---------------関数の作成-------------------------------------- # ②実行 def start_click_gyou1(): global var chk = int(var.get()) print(chk) #~~~~~~~~~~~省略~~~~~~~~~~~~~~~ # --------------ボタン押し実行処理----------------- start_button_gyou1["command"] = start_click_gyou1 # ② # ------------------------------------------------------------- # ウインドウのループ処理 root_gyou1.mainloop()
試したこと
1.ラジオボタンの変数 var をグローバル変数に。→すべて0で返る
2.打ち間違いなどの見直し

回答1件
あなたの回答
tips
プレビュー