Heim > Artikel > Backend-Entwicklung > Baumansicht-Bildlaufleiste in Python-Tkinter
Bei der Arbeit mit hierarchischen Daten in einer grafischen Benutzeroberfläche (GUI) ist es oft notwendig, die Daten strukturiert und organisiert anzuzeigen. Das Treeview-Widget in Python-Tkinter bietet eine leistungsstarke Lösung für die benutzerfreundliche Darstellung hierarchischer Daten. Wenn jedoch die Anzahl der Elemente in einer Baumansicht zunimmt, ist es wichtig, Bildlaufleisten einzubinden, um eine reibungslose Navigation und Benutzerfreundlichkeit zu gewährleisten.
Stellen Sie zunächst sicher, dass Python und Tkinter auf Ihrem System installiert sind. Python 3 wird für verbesserte Kompatibilität und Funktionalität empfohlen. Wenn Sie Tkinter nicht installiert haben, können Sie es einfach mit dem Python-Paketmanager pip installieren. Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung und führen Sie den folgenden Befehl aus −
pip install tk
Wenn Tkinter installiert ist, haben Sie Zugriff auf das leistungsstarke GUI-Toolkit, das Sie zum Erstellen von Treeview-Widgets und zum Hinzufügen von Bildlaufleisten benötigen.
Zuerst erstellen wir ein einfaches Treeview-Widget. Öffnen Sie Ihren bevorzugten Texteditor oder Ihre integrierte Entwicklungsumgebung (IDE) und erstellen Sie eine neue Python-Datei. Wir beginnen mit dem Import der notwendigen Module -
import tkinter as tk from tkinter import ttk
Das tkinter-Modul bietet die Grundlage für die Erstellung von GUI-Anwendungen in Python, und das ttk-Modul enthält die thematischen Widgets, einschließlich des Treeview-Widgets.
Als nächstes erstellen wir ein Tkinter-Root-Fenster und ein Treeview-Widget. Fügen Sie den folgenden Code zu Ihrer Python-Datei hinzu −
root = tk.Tk() # Create a Treeview widget tree = ttk.Treeview(root) tree.pack()
Hier verwenden wir tk.Tk(), um ein Root-Fenster zu erstellen, das als Hauptfenster unserer Anwendung dient. Anschließend erstellen wir ein Baumobjekt der Klasse ttk.Treeview, das unser Treeview-Widget darstellt. Schließlich verwenden wir die Pack-Methode, um das Treeview-Widget im Root-Fenster anzuzeigen.
Um unserer Baumansicht eine Bildlaufleiste hinzuzufügen, verwenden wir das von Tkinter bereitgestellte Widget ttk.Scrollbar. Die Bildlaufleiste ermöglicht ein reibungsloses vertikales Scrollen, wenn die Elemente in der Baumansicht den verfügbaren Platz überschreiten.
Nachdem Sie das TreeView-Widget erstellt haben, fügen Sie den folgenden Code hinzu, um die Bildlaufleiste zu erstellen und TreeView für die Verwendung zu konfigurieren −
# Create a Scrollbar scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview) # Configure the Treeview to use the scrollbar tree.configure(yscrollcommand=scrollbar.set) # Place the scrollbar on the right side of the Treeview scrollbar.pack(side="right", fill="y")
Hier erstellen wir ein Bildlaufleistenobjekt der Klasse ttk.Scrollbar und geben die Ausrichtung mithilfe des Parameters orient als „vertikal“ an. Der Befehlsparameter wird auf „tree.yview“ festgelegt, wodurch die Bildlaufleiste mit dem vertikalen Scrollen der Baumansicht verknüpft wird.
Als nächstes konfigurieren wir die Baumansicht so, dass sie die Set-Methode der Bildlaufleiste als yscrollcommand-Option verwendet. Dadurch wird sichergestellt, dass die Bildlaufleiste das vertikale Scrollen der Baumansicht steuert.
Schließlich verwenden wir die Pack-Methode, um die Bildlaufleiste auf der rechten Seite des Treeview-Widgets zu platzieren, indem wir die Option fill="y" verwenden, damit sie die gesamte Höhe des Treeview ausfüllt.
Mit diesen Ergänzungen sehen Sie, wenn Sie jetzt die Python-Datei ausführen, das Treeview-Widget zusammen mit einer vertikalen Bildlaufleiste auf der rechten Seite. Bildlaufleisten ermöglichen bei Bedarf das Durchsuchen des Inhalts der Baumansicht.
Da wir nun die Baumansicht und die Bildlaufleisten eingerichtet haben, füllen wir die Baumansicht mit einigen Beispieldaten. Auf diese Weise können wir beobachten, wie sich die Bildlaufleiste verhält, wenn eine große Anzahl von Elementen bearbeitet wird.
Um Spalten und Elemente zur Baumansicht hinzuzufügen, ändern Sie Ihre Python-Datei wie folgt −
# Add columns to the Treeview tree["columns"] = ("Name", "Age") # Define column headings tree.heading("#0", text="ID") tree.heading("Name", text="Name") tree.heading("Age", text="Age") # Add items to the Treeview tree.insert("", "end", text="1", values=("John Doe", "30")) tree.insert("", "end", text="2", values=("Jane Smith", "25")) tree.insert("", "end", text="3", values=("Mike Johnson", "35"))
Hier haben wir der Baumansicht zwei Spalten hinzugefügt, indem wir die Eigenschaft columns auf ein Tupel gesetzt haben, das die Spaltennamen „Name“ und „Alter“ enthält. Spalte Nr. 0 stellt die standardmäßige erste Spalte dar, die wir zur Anzeige der ID verwenden werden. Wir verwenden die Überschriftenmethode, um die Spaltenüberschrift entsprechend festzulegen.
Als nächstes verwenden wir die Einfügemethode, um das Element in die Baumansicht einzufügen. Jedes Element wird durch eine eindeutige ID dargestellt und die entsprechende Spalte hat einen entsprechenden Wert. In diesem Beispiel haben wir drei Elemente mit den IDs 1, 2 und 3 eingefügt, die jeweils dem Namen und dem Alter entsprechen.
Während die grundlegende Funktionalität der Bildlaufleiste unerlässlich ist, möchten Sie möglicherweise auch deren Erscheinungsbild anpassen, um sie an das Gesamtthema Ihrer App anzupassen. Tkinter bietet die Möglichkeit, den Stil der Bildlaufleiste mithilfe der Klasse ttk.Style zu ändern. Lassen Sie uns untersuchen, wie Sie Bildlaufleisten gestalten, um ein einheitlicheres Erscheinungsbild zu erzielen.
Importieren Sie zunächst das ttk-Modul und erstellen Sie eine Instanz der ttk.Style-Klasse −
from tkinter import ttk # Create a Style object style = ttk.Style()
Als nächstes können wir den Stil der Bildlaufleiste konfigurieren. In diesem Beispiel ändern wir die Hintergrundfarbe, die Grifffarbe und die Dicke der Bildlaufleiste. Fügen Sie den folgenden Code hinzu, nachdem Sie das Stilobjekt erstellt haben −
# Configure the style for the scrollbar style.configure("Treeview.Scrollbar", background="gray", troughcolor="light gray", gripcount=0, gripcolor="white", gripinset=2, gripborderwidth=0, thickness=10)
Hier verwenden wir die configure-Methode der ttk.Style-Klasse, um das Erscheinungsbild der Bildlaufleiste anzupassen. Die Zeichenfolge „Treeview.Scrollbar“ bezieht sich auf das spezifische Stilelement, das wir ändern möchten.
在这个例子中,我们将滚动条的背景颜色设置为灰色,槽的颜色设置为浅灰色,手柄的颜色设置为白色。gripcount选项设置为0以隐藏手柄,并使用gripinset和gripborderwidth选项调整手柄的外观。最后,我们将滚动条的厚度设置为10像素。
将自定义样式应用于滚动条,将其与 Treeview 小部件关联。将滚动条创建代码修改如下 −
# Create a Scrollbar with the customized style scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview, style="Treeview.Scrollbar")
通过将style参数指定为"Treeview.Scrollbar",滚动条将使用之前定义的自定义样式。
保存Python文件并运行它。现在你应该在Treeview中看到带有更新样式的滚动条。
保存Python文件并运行。您应该会看到一个带有Treeview小部件和垂直滚动条的窗口。尝试调整窗口大小或向Treeview添加更多项目,以查看滚动条的效果。
在这里,我们探讨了如何在Python-Tkinter中为Treeview小部件添加滚动条。我们首先创建了一个基本的Treeview,然后添加了一个垂直滚动条,以实现对Treeview内容的平滑滚动。我们还介绍了如何样式化滚动条,以使其与应用程序的整体主题相匹配。此外,我们还学习了如何处理滚动条事件,使我们能够对用户交互作出特定的响应。通过按照这些步骤,您可以通过添加可滚动的Treeview来增强您的Python-Tkinter应用程序,为导航分层数据提供高效和用户友好的方式。
Das obige ist der detaillierte Inhalt vonBaumansicht-Bildlaufleiste in Python-Tkinter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!