python : programmation concurrente (21)

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.ttkest 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.ttkLe module contient de nombreux contrôles correspondant aux contrôles standard de Tkinter, tels que Button, Label, , Entryetc. 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, Buttonles contrôles tkinter.ttkdeviennent 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.ttkle 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.ttkun module, il suffit de l'importer :

from tkinter import ttk

Ensuite, vous pouvez ttkutiliser les commandes de style Tk via le préfixe.

Il convient de noter que, puisque tkinter.ttkles 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

ttkLes widgets sont un ensemble de contrôles dans Tkinter, tkinter.ttkfournis 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 ttkcontrô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 ttkdes 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.Treeviewl'utilisation tkinter.ttk.Treeviewde modules.

3、Combobox

ttk.ComboboxUn 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.Comboboxproprié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.Comboboxle 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.Comboboxchamp 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_selectla fonction est déclenchée et la valeur sélectionnée est imprimée.

En utilisant ttk.Comboboxdes 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.SpinboxC'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.Spinboxproprié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)incrementOu 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.Spinboxle 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.Spinboxcontrô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_changela fonction est déclenchée pour imprimer la valeur actuelle.

En utilisant ttk.Spinboxdes 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.Notebookest un contrôle dans Tkinter pour créer des widgets avec plusieurs onglets, similaires à une interface à onglets.

Voici les ttk.Notebookproprié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. childest le sous-composant à ajouter kwargset est l'option de configuration pour définir l'onglet, par exemple textpour 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.Notebookle 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.Notebookcontrôle et ajouté deux onglets (Tab 1 et Tab 2). Chaque onglet contient un ttk.Framecontrôle pour placer le contenu de l'onglet. Nous utilisons adddes méthodes pour ttk.Frameajouter des contrôles à l'onglet et textdes propriétés pour définir le titre de l'onglet.

En utilisant ttk.Notebookdes 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.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43431593/article/details/131355479
conseillé
Classement