Python GUI Programming

Maîtriser ttk.Combobox de Tkinter : Guide complet

Spread the love

Le widget ttk.Combobox dans Tkinter offre un moyen pratique de créer des menus déroulants dans vos applications GUI Python. Ce tutoriel vous guidera à travers ses principales caractéristiques et fonctionnalités, en fournissant des exemples pratiques pour vous aider à intégrer efficacement les boîtes de combinaison dans vos projets.

Table des matières :

  1. Exemple de Combobox de base
  2. Personnalisation de l’apparence : polices et styles
  3. Gestion des événements et interaction utilisateur
  4. Mise à jour dynamique des valeurs de la Combobox
  5. Création de Combobox en lecture seule

1. Exemple de Combobox de base

Commençons par un exemple simple pour illustrer la création et l’utilisation d’un ttk.Combobox :


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Exemple de Combobox")

combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack(pady=20)
combo.current(0)  # Définit la valeur par défaut sur "Option 1"

root.mainloop()

Ce code crée une fenêtre principale, ajoute une boîte de combinaison avec trois options prédéfinies et définit la sélection par défaut sur « Option 1 ». N’oubliez pas d’importer à la fois tkinter et ttk.

2. Personnalisation de l’apparence : polices et styles

Vous pouvez personnaliser l’apparence de la boîte de combinaison, telle que sa police :


import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont

root = tk.Tk()
root.title("Exemple de style de Combobox")

myFont = tkFont.Font(family="Helvetica", size=12, weight="bold")
combo = ttk.Combobox(root, values=["Option A", "Option B", "Option C"], font=myFont)
combo.pack(pady=20)
combo.current(0)

root.mainloop()

Cet exemple montre comment créer une police personnalisée et l’appliquer à la boîte de combinaison. Expérimentez avec différentes familles de polices, tailles et poids pour obtenir l’apparence souhaitée.

3. Gestion des événements et interaction utilisateur

Pour répondre aux sélections de l’utilisateur, liez des événements à la boîte de combinaison. L’événement <<ComboboxSelected>> est déclenché lorsqu’un utilisateur sélectionne un élément :


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Gestion des événements de Combobox")

def combo_selected(event):
    selected_item = combo.get()
    print(f"Élément sélectionné : {selected_item}")

combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack(pady=20)
combo.current(0)
combo.bind("<<ComboboxSelected>>", combo_selected)

root.mainloop()

Ce code définit une fonction combo_selected qui affiche l’élément sélectionné. La méthode bind connecte cette fonction à l’événement <<ComboboxSelected>>.

4. Mise à jour dynamique des valeurs de la Combobox

Vous pouvez mettre à jour les options de la boîte de combinaison dynamiquement au moment de l’exécution :


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Combobox dynamique")

combo = ttk.Combobox(root)
combo.pack(pady=20)

def update_combo():
    new_values = ["Nouvelle option 1", "Nouvelle option 2", "Nouvelle option 3"]
    combo["values"] = new_values

button = tk.Button(root, text="Mettre à jour la Combobox", command=update_combo)
button.pack()

root.mainloop()

Un bouton déclenche la fonction update_combo, qui modifie l’attribut values de la boîte de combinaison.

5. Création de Combobox en lecture seule

Pour rendre la boîte de combinaison en lecture seule (empêcher la saisie directe de texte), utilisez l’option state :


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Combobox en lecture seule")

combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"], state="readonly")
combo.pack(pady=20)
combo.current(0)

root.mainloop()

La définition de state="readonly" désactive la saisie directe de texte, ne permettant que la sélection dans le menu déroulant.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *