一番下のコードのように複数あるチェックボタンの情報取得に関して教えてください。
仮に、「東京」だけのチェック情報を取得するのであれば、
Python
1 2def check_tokyo(): 3if val1.get() == True: 4
で良いのかと思いますが、複数チェックボタンがあり二つ三つと選択される可能性がある場合のコードの書き方が解りません。
記述方法ご存知の方いらしたら、教えていただけないでしょうか。
よろしくお願いいたします。
Python
1 2from tkinter import * 3from tkinter import ttk 4 5root = Tk() 6root.title('人口') 7root.geometry("500x450+640+40") 8 9 10frame1 = ttk.Labelframe(root, text='地域選択', padding=5) 11frame1.grid(row=0, column=0, columnspan=1, padx=15, pady=10, sticky='w') 12 13frame2 = ttk.Labelframe(root, text='関東',padding=5) 14frame2.grid(row=1,column=0, columnspan=1, padx=15, pady=10, sticky='nw') 15 16frame3 = ttk.Labelframe(root, text='関西',padding=5) 17frame3.grid(row=1,column=1, columnspan=1, padx=10, pady=10, sticky='nw') 18 19 20selected_frame = IntVar() 21 22def change_selected_frame(): 23 if selected_frame.get() == 0: 24 25 for child in frame2.winfo_children(): 26 child.configure(state='enable') 27 for child in frame3.winfo_children(): 28 child.configure(state='disable') 29 30 elif selected_frame.get() == 1: 31 for child in frame2.winfo_children(): 32 child.configure(state='disable') 33 for child in frame3.winfo_children(): 34 child.configure(state='enable') 35 36 else: 37 for child in frame2.winfo_children(): 38 child.configure(state='disable') 39 for child in frame3.winfo_children(): 40 child.configure(state='disable') 41 42 43rb1 = ttk.Radiobutton(frame1, text='関東 ', 44 variable=selected_frame, 45 value=0, 46 command=change_selected_frame) 47rb1.grid(row=1,column=0,pady=5) 48 49rb2 = ttk.Radiobutton(frame1, 50 text='関西', 51 variable=selected_frame, 52 value=1, 53 command=change_selected_frame) 54rb2.grid(row=1,column=1,pady=5) 55 56 57# 関東の全てのチェックボックスをONにする関数 58def check_all_kanto_checkboxes(): 59 val1.set(True) 60 val2.set(True) 61 val3.set(True) 62 val4.set(True) 63 64# 関東の全てのチェックボックスをOFFにする関数 65def clear_all_kanto_checkboxes(): 66 val1.set(False) 67 val2.set(False) 68 val3.set(False) 69 val4.set(False) 70 71# 関西の全てのチェックボックスをONにする関数 72def check_all_kansai_checkboxes(): 73 val5.set(True) 74 val6.set(True) 75 val7.set(True) 76 77# 関西の全てのチェックボックスをOFFにする関数 78def clear_all_kansai_checkboxes(): 79 val5.set(False) 80 val6.set(False) 81 val7.set(False) 82 83btn1 = ttk.Button(frame2, text='全選択', padding=5, command=check_all_kanto_checkboxes) 84btn1.grid(row=5,column=0,pady=5) 85 86btn2 = ttk.Button(frame2, text='全解除', padding=5, command=clear_all_kanto_checkboxes) 87btn2.grid(row=5,column=1,pady=5) 88 89btn3 = ttk.Button(frame3, text='全選択', padding=5, command=check_all_kansai_checkboxes) 90btn3.grid(row=5,column=0,pady=5) 91 92btn4 = ttk.Button(frame3, text='全解除', padding=5, command=clear_all_kansai_checkboxes) 93btn4.grid(row=5,column=1,pady=5) 94 95btn5 = ttk.Button(text='集計', padding=5) 96btn5.grid(row=5,column=0,pady=5) 97 98btn6 = ttk.Button(text='キャンセル', padding=5) 99btn6.grid(row=5,column=1,pady=5) 100 101 102val1 = BooleanVar() 103val1.set(False) 104 105val2 = BooleanVar() 106val2.set(False) 107 108val3 = BooleanVar() 109val3.set(False) 110 111val3 = BooleanVar() 112val3.set(False) 113 114val4 = BooleanVar() 115val4.set(False) 116 117val5 = BooleanVar() 118val5.set(False) 119 120val6 = BooleanVar() 121val6.set(False) 122 123val7 = BooleanVar() 124val7.set(False) 125 126kt1 = ttk.Checkbutton(frame2, text='東京', variable=val1) 127kt1.grid(row=6,column=0, columnspan=1, padx=15, pady=5, sticky='w') 128 129kt2 = ttk.Checkbutton(frame2, text='神奈川', variable=val2) 130kt2.grid(row=7,column=0, columnspan=1, padx=15, pady=5, sticky='w') 131 132kt3 = ttk.Checkbutton(frame2, text='千葉', variable=val3) 133kt3.grid(row=8,column=0, columnspan=1, padx=15, pady=5, sticky='w') 134 135kt4 = ttk.Checkbutton(frame2, text='埼玉', variable=val4) 136kt4.grid(row=9,column=0, columnspan=1, padx=15, pady=5, sticky='w') 137 138 139ks1 = ttk.Checkbutton(frame3, text='大阪', variable=val5) 140ks1.grid(row=6,column=0, columnspan=1, padx=15, pady=5, sticky='w') 141 142ks2 = ttk.Checkbutton(frame3, text='兵庫', variable=val6) 143ks2.grid(row=7,column=0, columnspan=1, padx=15, pady=5, sticky='w') 144 145ks3 = ttk.Checkbutton(frame3, text='京都', variable=val7) 146ks3.grid(row=8,column=0, columnspan=1, padx=15, pady=5, sticky='w') 147 148 149selected_frame.set(-1) 150change_selected_frame() 151 152root.mainloop() 153 154
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/19 23:53