ttk Treeview ウィジェットを使用して、フォルダー/パス選択ダイアログを実装しています。水平スクロールバーがアクティブにならないことを除いて、すべて期待どおりに機能しています。フォルダ パスが水平方向にどれほど広くても、ウィンドウがどれほど狭くても、水平スライダは表示されません。ただし、垂直スクロールは完全に機能しています。
ツリービューで1つの列しか使用しない場合の何らかの制限か、ウィジェットの構成と接続に関する初心者の間違いのいずれかであると考えています。私は後者に賭けます。
フォルダの深さ全体を表示するためにダイアログを広げた例:
水平スクロールがアクティブになるポイントまでダイアログが狭められます (ただし、アクティブになりません)。
これが私のGUIレイアウトコードです:
winDirSel = tk.Toplevel()
winDirSel.title('Select Test Directory...')
tvwDirSel = ttk.Treeview(winDirSel,
height=10,padding=3,
show='tree')
lblTestDir = tk.Label(winDirSel, relief=tk.SUNKEN,
justify=tk.LEFT, anchor=tk.W,
textvariable=ctrlTestDir,width=80)
scbHDirSel = ttk.Scrollbar(winDirSel,
orient=tk.HORIZONTAL,
command=tvwDirSel.xview)
scbVDirSel = ttk.Scrollbar(winDirSel,
orient=tk.VERTICAL,
command=tvwDirSel.yview)
tvwDirSel.configure(xscrollcommand=scbHDirSel.set,
yscrollcommand=scbVDirSel.set)
lblTestDir.grid(row=0,column=0,sticky=tk.EW)
tvwDirSel.grid(row=1,column=0,sticky=tk.NSEW)
scbVDirSel.grid(row=1,column=1,sticky=tk.NS)
scbHDirSel.grid(row=2,column=0,sticky=tk.EW)
winDirSel.rowconfigure(1,weight=1)
winDirSel.columnconfigure(0,weight=1)