avant-propos
Cet article discutera avec vous du projet réel de programmation concurrente en python : application d'interface graphique win (troisième partie, un total de huit articles) . La série d'articles construira le projet à partir de zéro, améliorera progressivement le projet et finalement rendra le projet adapté à une application de scène à haute simultanéité.
Cet article est le vingt et unième article de la programmation concurrente en python. L'adresse de l'article précédent est la suivante :
Python : programmation simultanée (20)_Blog du Roi Lion-Blog CSDN
L'adresse du prochain article est la suivante :
Python : programmation simultanée (22)_Blog du Roi Lion-Blog CSDN
1. Fonctionnement de base
1. tkinter.ttk --- Contrôles de style Tk
tkinter.ttk
est un module de Tkinter qui fournit un ensemble de contrôles de style Tk pour créer des interfaces utilisateur plus modernes et plus belles.
tkinter.ttk
Le module contient de nombreux contrôles correspondant aux contrôles standard de Tkinter, tels que Button
, Label
, , Entry
etc. Ils sont nommés de la même manière que les contrôles standard, mais avec un préfixe "T" ajouté devant. Par exemple, Button
les contrôles tkinter.ttk
deviennent en ttk.Button
.
Par rapport aux commandes standard, ces commandes de style Tk ont une meilleure apparence et un meilleur style, et peuvent conserver une apparence cohérente sous différents systèmes d'exploitation et thèmes. L'utilisation de contrôles de style Tk peut améliorer l'expérience utilisateur des applications sur différentes plates-formes.
En plus d'avoir une meilleure apparence, tkinter.ttk
le module fournit également d'autres fonctions, telles que la personnalisation du style de thème, la gestion de l'état des contrôles, l'amélioration du gestionnaire de mise en page, etc. Il prend également en charge de nouveaux contrôles, tels que Combobox
(liste déroulante), Notebook
(onglet), etc., et certains contrôles étendus, tels que la barre de progression, l'arborescence, etc.
Pour utiliser tkinter.ttk
un module, il suffit de l'importer :
from tkinter import ttk
Ensuite, vous pouvez ttk
utiliser les commandes de style Tk via le préfixe.
Il convient de noter que, puisque tkinter.ttk
les contrôles et les fonctions fournis par le module peuvent présenter certaines différences par rapport à Tkinter standard, lors de l'écriture d'une application, vous devez choisir d'utiliser des contrôles standard ou des contrôles de style Tk en fonction de la situation spécifique.
2. contrôle ttk
ttk
Les widgets sont un ensemble de contrôles dans Tkinter, tkinter.ttk
fournis via des modules. Ces commandes ont une apparence et une convivialité plus modernes, plus belles et plus personnalisables qui offrent une apparence cohérente à travers les systèmes d'exploitation et les thèmes.
Voici quelques ttk
contrôles courants :
(1)ttk.Button
: Contrôle de bouton, utilisé pour répondre aux événements de clic de l'utilisateur.
(2)ttk.Label
: Champ Label, utilisé pour afficher du texte ou une image.
(3)ttk.Entry
: Le champ de la zone de saisie permet de recevoir le texte saisi par l'utilisateur.
(4)ttk.Checkbutton
: Champ de case à cocher, permettant de sélectionner une ou plusieurs options.
(5)ttk.Radiobutton
: Une commande de bouton radio utilisée pour sélectionner l'une des nombreuses options.
(6)ttk.Combobox
: Champ de la liste déroulante, qui combine les fonctions de zone de saisie et de liste déroulante.
(7)ttk.Spinbox
: Un contrôle spinner pour entrer des valeurs numériques.
(8)ttk.Progressbar
: Champ barre de progression, permettant d'afficher l'avancement de la tâche.
(9)ttk.Treeview
: Champ arborescent, permettant d'afficher des données hiérarchiques.
(10)ttk.Notebook
: contrôle d'onglet, utilisé pour basculer entre les différentes pages.
(11)ttk.Scale
: Commande à barre coulissante, utilisée pour sélectionner la plage de valeurs.
(12)ttk.Separator
: Champ Séparateur, utilisé pour séparer les éléments de l'interface.
(13)ttk.Style
: Gestionnaire de styles, permettant de personnaliser l'apparence et le style du champ.
Ces contrôles sont utilisés de la même manière que les contrôles Tkinter standard, sauf qu'ils sont préfixés par "ttk.". En utilisant ttk
des contrôles, vous pouvez fournir à votre application une meilleure expérience d'interface utilisateur et être en mesure de vous adapter aux exigences d'apparence de différentes plates-formes et thèmes.
Notez que certains contrôles spéciaux peuvent nécessiter la prise en charge d'autres modules, tels que ttk.Treeview
l'utilisation tkinter.ttk.Treeview
de modules.
3、Combobox
ttk.Combobox
Un contrôle dans Tkinter qui combine les fonctionnalités d'une zone de saisie et d'une liste déroulante, permettant à l'utilisateur de sélectionner parmi des options prédéfinies ou de saisir du texte manuellement.
Voici les ttk.Combobox
propriétés et méthodes couramment utilisées :
Propriétés communes :
(1)values
: Spécifie les valeurs d'option dans la liste déroulante, qui peut être une liste de chaînes ou un tuple.
(2)textvariable
: Une variable associée à la zone de saisie, utilisée pour obtenir ou définir le texte dans la zone de saisie.
(3)state
: spécifie l'état du contrôle, qui peut être "readonly"
(lecture seule) ou "normal"
(modifiable).
Méthodes courantes :
(1)get()
: Récupère le texte dans la zone de saisie.
(2)set(value)
: définissez le texte dans la zone de saisie sur la valeur spécifiée.
(3)current(index)
: Définir l'index de l'élément actuellement sélectionné.
(4)bind(event, handler)
: Liaison de la fonction de traitement d'événement, déclenche la fonction de traitement correspondante lorsque l'événement spécifié se produit.
Voici un exemple de code qui montre comment créer et utiliser ttk.Combobox
le contrôle :
import tkinter as tk
from tkinter import ttk
def on_select(event):
selected_value = combobox.get()
print("Selected value:", selected_value)
root = tk.Tk()
# 创建Combobox控件
combobox = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combobox.pack()
# 绑定事件处理函数
combobox.bind("<<ComboboxSelected>>", on_select)
root.mainloop()
Dans l'exemple ci-dessus, nous avons créé un ttk.Combobox
champ spécifiant la valeur de l'option dans la liste déroulante ["Option 1", "Option 2", "Option 3"]
. Ensuite, nous lions "<<ComboboxSelected>>"
l'événement, et lorsque l'utilisateur sélectionne une option, on_select
la fonction est déclenchée et la valeur sélectionnée est imprimée.
En utilisant ttk.Combobox
des contrôles, nous pouvons facilement implémenter des zones de saisie avec des options déroulantes pour offrir une meilleure expérience d'interaction et de sélection de l'utilisateur.
4、Spinbox
ttk.Spinbox
C'est un contrôle dans Tkinter, qui fournit une zone de saisie qui peut augmenter ou diminuer la valeur par elle-même.
Voici les ttk.Spinbox
propriétés et méthodes couramment utilisées :
Propriétés communes :
(1)from_
Ou from
: Spécifiez la valeur minimale qu'il est permis d'entrer.
(2)to
: spécifie la valeur maximale autorisée pour l'entrée.
(3)increment
Ou increment
: Spécifiez la taille du pas pour chaque augmentation ou diminution.
(4)textvariable
: Une variable associée à la zone de saisie, utilisée pour obtenir ou définir la valeur dans la zone de saisie.
Méthodes courantes :
(1)get()
: Récupère la valeur dans la zone de saisie.
(2)set(value)
: Définissez la valeur dans la zone de saisie sur la valeur spécifiée.
Voici un exemple de code qui montre comment créer et utiliser ttk.Spinbox
le contrôle :
import tkinter as tk
from tkinter import ttk
def on_change():
selected_value = spinbox.get()
print("Selected value:", selected_value)
root = tk.Tk()
# 创建Spinbox控件
spinbox = ttk.Spinbox(root, from_=0, to=10, increment=1)
spinbox.pack()
# 绑定变量的值改变事件
spinbox.bind("<<Increment>>", lambda _: on_change())
spinbox.bind("<<Decrement>>", lambda _: on_change())
root.mainloop()
Dans l'exemple ci-dessus, nous avons créé un ttk.Spinbox
contrôle, spécifié la plage de valeurs autorisées de 0 à 10, et la taille du pas de chaque augmentation ou diminution est de 1. Ensuite, nous lions l' événement "<<Increment>>"
et "<<Decrement>>"
, et lorsque l'utilisateur clique sur le bouton d'augmentation ou de diminution, on_change
la fonction est déclenchée pour imprimer la valeur actuelle.
En utilisant ttk.Spinbox
des contrôles, nous pouvons facilement implémenter une zone de saisie avec une valeur qui peut être incrémentée ou décrémentée pour fournir une meilleure expérience de saisie et de sélection de l'utilisateur.
5、Notebook
ttk.Notebook
est un contrôle dans Tkinter pour créer des widgets avec plusieurs onglets, similaires à une interface à onglets.
Voici les ttk.Notebook
propriétés et méthodes couramment utilisées :
Propriétés communes :
(1)style
: spécifie le style de l'onglet.
(2)tabs
: renvoie une liste des noms de tous les onglets.
Méthodes courantes :
(1)add(child, **kwargs)
: ajoute un sous-composant à l'onglet. child
est le sous-composant à ajouter kwargs
et est l'option de configuration pour définir l'onglet, par exemple text
pour définir le titre de l'onglet.
(2)forget(tab_id)
: Masque l'onglet spécifié.
(3)select(tab_id)
: Sélectionnez l'onglet spécifié.
(4)tab(tab_id)
: renvoie le widget pour l'onglet spécifié.
(5)enable_traversal()
: permet de changer d'onglet en appuyant sur une touche.
Voici un exemple de code qui montre comment créer et utiliser ttk.Notebook
le contrôle :
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# 创建Notebook控件
notebook = ttk.Notebook(root)
# 创建第一个选项卡
frame1 = ttk.Frame(notebook)
frame1.pack(fill="both", expand=True)
label1 = ttk.Label(frame1, text="Content of Tab 1")
label1.pack(padx=10, pady=10)
notebook.add(frame1, text="Tab 1")
# 创建第二个选项卡
frame2 = ttk.Frame(notebook)
frame2.pack(fill="both", expand=True)
label2 = ttk.Label(frame2, text="Content of Tab 2")
label2.pack(padx=10, pady=10)
notebook.add(frame2, text="Tab 2")
notebook.pack(fill="both", expand=True)
root.mainloop()
Dans l'exemple ci-dessus, nous avons créé un ttk.Notebook
contrôle et ajouté deux onglets (Tab 1 et Tab 2). Chaque onglet contient un ttk.Frame
contrôle pour placer le contenu de l'onglet. Nous utilisons add
des méthodes pour ttk.Frame
ajouter des contrôles à l'onglet et text
des propriétés pour définir le titre de l'onglet.
En utilisant ttk.Notebook
des contrôles, nous pouvons facilement créer des fenêtres avec une interface à onglets pour organiser et basculer facilement entre différentes pages de contenu.