Der horizontale Bildlauf nicht aktivieren für ttk Treeview-widget

Ich bin mit dem ttk Treeview-widget zu implementieren, die einen Ordner/Pfad-Auswahl-dialog. Es ist alles wie erwartet funktioniert, außer, dass meine horizontale Bildlaufleiste nicht aktivieren. Egal, wie weit Sie den Ordner-Pfad geht horizontal und egal wie schmal das Fenster, der horizontale Schieberegler nicht angezeigt wird. Vertikales scrollen funktioniert perfekt, obwohl.

Ich bin es, herauszufinden, es ist entweder eine Art von Einschränkung, wenn Sie nur eine Spalte in der Strukturansicht, oder einfach nur ein newbie Fehler mit der Konfiguration und Anbindung der widgets. Ich Wette auf den letzteren.

Beispiel mit dialog erweitert, um zu zeigen, vollen Ordner, Tiefe:

Der horizontale Bildlauf nicht aktivieren für ttk Treeview-widget

Dialog verengt zu dem Punkt, wo der horizontale Bildlauf aktivieren soll (aber nicht tut):

Der horizontale Bildlauf nicht aktivieren für ttk Treeview-widget

Hier mein GUI-layout-code:

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)
Es muss nicht vollständig auf allen Plattformen funktionieren, in der Tat. Was Sie tun können, ist die Einstellung einer minwidth parameter pro Spalte, sowie spielen mit stretch=False. Es buggy ist in dieser Hinsicht.

InformationsquelleAutor JDM | 2013-01-16

Schreibe einen Kommentar