複数あるチェックボタンの制御、
・一括での全選択
・一括での全解除
を考えているのですが、どのようにコードを書けば良いでしょうか。
ご存知の方、ご教授頂けると幸いです。
python
1 2from tkinter import * 3from tkinter import ttk 4 5root = Tk() 6root.title('人口') 7root.geometry("500x500+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 57btn1 = ttk.Button(frame2, text='全選択', padding=5) 58btn1.grid(row=5,column=0,pady=5) 59 60btn2 = ttk.Button(frame2, text='全解除', padding=5) 61btn2.grid(row=5,column=1,pady=5) 62 63btn3 = ttk.Button(frame3, text='全選択', padding=5) 64btn3.grid(row=5,column=0,pady=5) 65 66btn4 = ttk.Button(frame3, text='全解除', padding=5) 67btn4.grid(row=5,column=1,pady=5) 68 69 70val1 = BooleanVar() 71val1.set(False) 72 73val2 = BooleanVar() 74val2.set(False) 75 76val3 = BooleanVar() 77val3.set(False) 78 79val3 = BooleanVar() 80val3.set(False) 81 82val4 = BooleanVar() 83val4.set(False) 84 85val5 = BooleanVar() 86val5.set(False) 87 88val6 = BooleanVar() 89val6.set(False) 90 91val7 = BooleanVar() 92val7.set(False) 93 94kt1 = ttk.Checkbutton(frame2, text='東京', variable=val1) 95kt1.grid(row=6,column=0, columnspan=1, padx=15, pady=5, sticky='w') 96 97kt2 = ttk.Checkbutton(frame2, text='神奈川', variable=val2) 98kt2.grid(row=7,column=0, columnspan=1, padx=15, pady=5, sticky='w') 99 100kt3 = ttk.Checkbutton(frame2, text='千葉', variable=val3) 101kt3.grid(row=8,column=0, columnspan=1, padx=15, pady=5, sticky='w') 102 103kt4 = ttk.Checkbutton(frame2, text='埼玉', variable=val4) 104kt4.grid(row=9,column=0, columnspan=1, padx=15, pady=5, sticky='w') 105 106 107ks1 = ttk.Checkbutton(frame3, text='大阪', variable=val5) 108ks1.grid(row=6,column=0, columnspan=1, padx=15, pady=5, sticky='w') 109 110ks2 = ttk.Checkbutton(frame3, text='兵庫', variable=val6) 111ks2.grid(row=7,column=0, columnspan=1, padx=15, pady=5, sticky='w') 112 113ks3 = ttk.Checkbutton(frame3, text='京都', variable=val7) 114ks3.grid(row=8,column=0, columnspan=1, padx=15, pady=5, sticky='w') 115 116 117selected_frame.set(-1) 118change_selected_frame() 119 120root.mainloop() 121 122コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/19 02:55