Ich verwende das ttk Treeview-Widget, um einen Ordner- / Pfadauswahldialog zu implementieren. Es funktioniert alles wie erwartet, außer dass meine horizontale Bildlaufleiste nicht aktiviert wird. Egal, wie breit der Ordnerpfad horizontal ist und egal wie schmal das Fenster ist, der horizontale Schieberegler wird nie angezeigt. Vertikales Scrollen funktioniert jedoch perfekt.
Ich denke, es ist entweder eine Art von Einschränkung, wenn Sie nur eine Spalte in der Strukturansicht verwenden, oder nur ein Anfängerfehler beim Konfigurieren und Verbinden der Widgets. Ich wette auf Letzteres.
Beispiel mit erweitertem Dialog, um die volle Ordnertiefe anzuzeigen:
Der Dialog wurde auf den Punkt eingeengt, an dem das horizontale Scrollen aktiviert werden sollte (aber nicht):
Hier ist mein GUI-Layout-Code:
%Vor% OK, nachdem ich mit minwidth
und stretch
gespielt habe, denke ich, dass ich einen besseren Griff habe. Das horizontale Scrollen wird ausgelöst, indem die Spaltenkante außerhalb der Grenzen des Fensters liegt, nicht der Inhalt der Spalte. So können Sie diese Parameter verwenden, um die Spalte breiter zu machen und so das Scrollen zu erzwingen.
Das Problem ist jedoch, dass Sie dann die automatische Anpassung der Spaltenbreite an die Breite des Baumes verlieren. Entweder müssen Sie es sehr weit aufzwingen, um eine (angenommene) wahrscheinliche Ordnertiefe zu berücksichtigen, oder Sie leben mit Ordnernamen, die am rechten Rand der Spalte abgeschnitten werden.
Also unter dem Strich: Es ist nur eine Einschränkung des Widgets selbst. (Zumindest in Bezug auf sein Verhalten auf meiner Plattform, MS Windows.)
Hier ist, was ich endlich gefunden habe, um ein TreeView
von Dateien anzuzeigen, die lazy-loaded sind (dank dieser Antwort ), die innerhalb eines PanedWindow
(SplitterWindow in wxPython-Termen) zusammen mit einem Notebook
liegt. Die Bildlaufleisten werden bei Bedarf automatisch angezeigt / ausgeblendet, dank diesem Beispiel .
Tags und Links treeview python-2.7 scrollbar tkinter ttk