Maison  >  Article  >  développement back-end  >  Barre de défilement TreeView en Python-Tkinter

Barre de défilement TreeView en Python-Tkinter

WBOY
WBOYavant
2023-08-20 17:57:542140parcourir

Barre de défilement TreeView en Python-Tkinter

Lorsque vous travaillez avec des données hiérarchiques dans une interface utilisateur graphique (GUI), il est souvent nécessaire d'afficher les données de manière structurée et organisée. Le widget Treeview de Python-Tkinter fournit une solution puissante pour présenter des données hiérarchiques de manière conviviale. Cependant, à mesure que le nombre d'éléments dans une arborescence augmente, il devient crucial d'inclure des barres de défilement pour garantir une navigation et une convivialité fluides.

Tout d’abord, assurez-vous que Python et Tkinter sont installés sur votre système. Python 3 est recommandé pour une compatibilité et des fonctionnalités améliorées. Si Tkinter n'est pas installé, vous pouvez facilement l'installer à l'aide du gestionnaire de packages Python pip. Ouvrez votre terminal ou votre invite de commande et exécutez la commande suivante

pip install tk

Une fois Tkinter installé, vous aurez accès à la puissante boîte à outils GUI dont vous avez besoin pour créer des widgets Treeview et ajouter des barres de défilement.

Créer une arborescence

Tout d’abord, nous allons créer un widget Treeview de base. Ouvrez votre éditeur de texte préféré ou votre environnement de développement intégré (IDE) et créez un nouveau fichier Python. Nous allons commencer par importer les modules nécessaires -

import tkinter as tk
from tkinter import ttk

Le module tkinter fournit la base pour la création d'applications GUI en Python, et le module ttk contient les widgets thématiques, y compris le widget Treeview.

Ensuite, créons une fenêtre racine Tkinter et un widget Treeview. Ajoutez le code suivant à votre fichier Python −

root = tk.Tk()

# Create a Treeview widget
tree = ttk.Treeview(root)
tree.pack()

Ici, nous utilisons tk.Tk() pour créer une fenêtre racine, qui sert de fenêtre principale de notre application. Ensuite, nous créons un objet arborescence de la classe ttk.Treeview, qui représente notre widget Treeview. Enfin, nous utilisons la méthode pack pour afficher le widget Treeview dans la fenêtre racine.

Ajouter une barre de défilement

Pour ajouter une barre de défilement à notre Treeview, nous utiliserons le widget ttk.Scrollbar fourni par Tkinter. La barre de défilement permet un défilement vertical fluide lorsque les éléments de l'arborescence dépassent l'espace disponible.

Après avoir créé le widget TreeView, ajoutez le code suivant pour créer la barre de défilement et configurez le TreeView pour l'utiliser

# 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")

Ici, nous créons un objet scrollbar de la classe ttk.Scrollbar, en spécifiant l'orientation comme "verticale" à l'aide du paramètre orient. Le paramètre de commande est défini sur tree.yview, qui associe la barre de défilement au défilement vertical du Treeview.

Ensuite, nous configurons Treeview pour utiliser la méthode set de la barre de défilement comme option yscrollcommand. Cela garantit que la barre de défilement contrôle le défilement vertical de l'arborescence.

Enfin, nous utilisons la méthode pack pour placer la barre de défilement sur le côté droit du widget Treeview, en utilisant l'option fill="y" pour qu'elle remplisse toute la hauteur du Treeview.

Avec ces ajouts, si vous exécutez maintenant le fichier Python, vous verrez le widget Treeview accompagné d'une barre de défilement verticale sur le côté droit. Les barres de défilement permettront de parcourir le contenu de l'arborescence en cas de besoin.

Remplir l'arborescence

Maintenant que le TreeView et les barres de défilement sont configurés, remplissons le TreeView avec quelques exemples de données. De cette façon, nous pouvons observer le comportement de la barre de défilement lorsqu'il s'agit d'un grand nombre d'éléments.

Pour ajouter des colonnes et des éléments à Treeview, modifiez votre fichier Python comme suit

# 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"))

Ici, nous avons ajouté deux colonnes à l'arborescence en définissant la propriété columns sur un tuple contenant les noms de colonnes : "Name" et "Age". La colonne n°0 représente la première colonne par défaut, que nous utiliserons pour afficher l'ID. Nous utilisons la méthode d'en-tête pour définir l'en-tête de colonne en conséquence.

Ensuite, nous utilisons la méthode insert pour insérer l'élément dans l'arborescence. Chaque élément est représenté par un identifiant unique et la colonne correspondante a une valeur correspondante. Dans cet exemple, nous avons inséré trois éléments dont les identifiants sont 1, 2 et 3, qui correspondent respectivement au nom et à l'âge.

Barres de défilement stylisées

Bien que la fonctionnalité de base de la barre de défilement soit essentielle, vous souhaiterez peut-être également personnaliser son apparence pour qu'elle corresponde au thème général de votre application. Tkinter offre la possibilité de modifier le style de la barre de défilement à l'aide de la classe ttk.Style. Explorons comment styliser les barres de défilement pour obtenir un aspect plus coordonné.

Tout d'abord, importez le module ttk et créez une instance de la classe ttk.Style

from tkinter import ttk

# Create a Style object
style = ttk.Style()

Ensuite, nous pouvons configurer le style de la barre de défilement. Dans cet exemple, nous allons modifier la couleur d’arrière-plan, la couleur de la poignée et l’épaisseur de la barre de défilement. Ajoutez le code suivant après avoir créé l'objet style

# 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)

Ici, nous utilisons la méthode configure de la classe ttk.Style pour personnaliser l'apparence de la barre de défilement. La chaîne "Treeview.Scrollbar" fait référence à l'élément de style spécifique que nous souhaitons modifier.

在这个例子中,我们将滚动条的背景颜色设置为灰色,槽的颜色设置为浅灰色,手柄的颜色设置为白色。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应用程序,为导航分层数据提供高效和用户友好的方式。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer