tkinterを用いて、フォルダ階層を選択させる。
フォルダ構造は以下の様に、子フォルダ、孫フォルダがあるとします。
フォルダA
-子フォルダA1
--孫フォルダA1-
-子フォルダA2
--孫フォルダA2-
フォルダB
-子フォルダB1
--孫フォルダB1-
-子フォルダB2
--孫フォルダB2-
ドロップダウンメニュー1(フォルダA、フォルダB)のフォルダAを選択すると
ドロップダウンメニュー2には(子フォルダA1,子フォルダA2)と表示されるようにしたいです。
更に、メニュー2の選択に従い、メニュー3の内容が変わる。
ただし、最大でもメニューは4つまで。
以下の様にコードを組むと、メニューの選択はできますが、随時更新できませんでした。
ユーザーの選択に従い、メニューが変わるようにするにはどうしたらよいでしょうか。
Python
1import tkinter 2from tkinter import StringVar, OptionMenu 3 4# tkinter 5root = tkinter.Tk() 6 7frame1 = tkinter.ttk.Frame(root, height = 500, width = 500) 8frame1.grid(row=0,column=0,sticky=(N,E,S,W)) 9 10OPTIONS_a1 = os.listdir(path='.') 11variable_a1 = StringVar() 12variable_a1.set(OPTIONS_a1[0]) # default value 13w_a1 = OptionMenu(frame1, variable_a1, *OPTIONS_a1) 14w_a1.grid() 15 16a1_path = variable_a1.get() 17 18OPTIONS_a2 = os.listdir(path=os.path.join('.', a1_path)) 19variable_a2 = StringVar() 20variable_a2.set(OPTIONS_a2[0]) # default value 21w_a2 = OptionMenu(frame1, variable_a2, *OPTIONS_a2) 22w_a2.grid() 23 24for child in frame1.winfo_children(): 25 child.grid_configure(padx=5, pady=5) 26 27root.mainloop() 28
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。