logo

Python Tkinter

Python offre plusieurs options pour développer une GUI (Graphical User Interface). Parmi toutes les méthodes GUI, tkinter est la méthode la plus couramment utilisée. Il s'agit d'une interface Python standard pour la boîte à outils Tk GUI fournie avec Python. Python Tkinter est le moyen le plus rapide et le plus simple de créer des applications GUI. Créer une interface graphique à l'aide de Tkinter est une tâche simple.

Table des matières



Pour créer une application Tkinter Python, suivez ces étapes de base :

  1. Importer le module tkinter : Cela se fait comme si vous importiez n'importe quel autre module dans Python . Notez que dans Python 2.x, le module s'appelle « Tkinter », tandis que dans Python 3.x, il s'appelle « tkinter ».
  2. Créer la fenêtre principale (conteneur) : La fenêtre principale sert de conteneur pour tous les éléments GUI que vous ajouterez plus tard.
  3. Ajouter des widgets à la fenêtre principale : Vous pouvez ajouter n'importe quel nombre de widgets comme des boutons, des étiquettes, des champs de saisie, etc., à la fenêtre principale pour concevoir l'interface comme vous le souhaitez.
  4. Appliquer des déclencheurs d'événements aux widgets : vous pouvez attacher des déclencheurs d'événements aux widgets pour définir la manière dont ils répondent aux interactions des utilisateurs.

Créer la première application graphique Tkinter

Il existe deux méthodes principales utilisées dont l'utilisateur doit se souvenir lors de la création de l'application Python avec l'interface graphique.

sélectionner comme

Merci()

Pour créer une fenêtre principale, tkinter propose une méthode 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Pour changer le nom de la fenêtre, vous pouvez remplacer le className par celui souhaité. Le code de base utilisé pour créer la fenêtre principale de l'application est :



boucle principale()

Il existe une méthode connue sous le nom de mainloop() qui est utilisée lorsque votre application est prête à être exécutée. mainloop() est une boucle infinie utilisée pour exécuter l'application, attendre qu'un événement se produise et traiter l'événement tant que la fenêtre n'est pas fermée.

Exemple

Python3
import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>

Sortir



img

Widget Tkinter

Il existe un certain nombre de widgets que vous pouvez intégrer à votre application tkinter. Certains des principaux widgets sont expliqués ci-dessous :

1. Étiquette

Il fait référence à la zone d'affichage dans laquelle vous pouvez mettre n'importe quel texte ou image qui peut être mis à jour à tout moment selon le code. La syntaxe générale est :

w=Label(master, option=value) master is the parameter used to represent the parent window.>
Python3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>

Sortir

étiquette

2. Bouton

Pour ajouter un bouton dans votre application, ce widget est utilisé. La syntaxe générale est :

w=Button(master, option=value)>

master est le paramètre utilisé pour représenter la fenêtre parent. Il existe un certain nombre d'options utilisées pour modifier le format des boutons. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules.Python3>

>
>

import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>


Sortir


3. Entrée

Il est utilisé pour saisir la saisie de texte sur une seule ligne par l'utilisateur. Pour la saisie de texte sur plusieurs lignes, le widget Texte est utilisé. La syntaxe générale est :

w=Entry(master, option=value)>

master est le paramètre utilisé pour représenter la fenêtre parent. Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>

Sortir

combien de zéro pour un million

4. Bouton de contrôle

Pour sélectionner un nombre quelconque d'options en affichant un certain nombre d'options à un utilisateur sous forme de boutons à bascule. La syntaxe générale est :

w = CheckButton(master, option=value)>

Il existe un certain nombre d'options utilisées pour modifier le format de ce widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>

Sortir



5. Bouton radio

Il est utilisé pour offrir une option à choix multiples à l'utilisateur. Il offre plusieurs options à l'utilisateur et celui-ci doit choisir une option. La syntaxe générale est :

w = RadioButton(master, option=value)>

Il existe un certain nombre d'options utilisées pour modifier le format de ce widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>

Sortir

6. Zone de liste

Il propose une liste à l'utilisateur à partir de laquelle l'utilisateur peut accepter un nombre illimité d'options. La syntaxe générale est :

w = Listbox(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>

Sortir


7. Barre de défilement

Il fait référence au contrôleur coulissant qui sera utilisé pour implémenter les widgets répertoriés. La syntaxe générale est :

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>

Sortir

8. Menu

Il est utilisé pour créer toutes sortes de menus utilisés par l'application. La syntaxe générale est :

w = Menu(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format de ce widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>

Sortir

9. Boîte combo

Le widget Combobox est créé à l'aide de la classe ttk.Combobox du module tkinter.ttk. Les valeurs de la Combobox sont spécifiées à l'aide du paramètre Values. La valeur par défaut est définie à l'aide de la méthode set. Une fonction de gestionnaire d'événements on_select est liée à la Combobox à l'aide de la méthode bind, qui met à jour une étiquette avec l'élément sélectionné chaque fois qu'un élément est sélectionné.

Python3
import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>

Sortir

image2

dix. Échelle

Il est utilisé pour fournir un curseur graphique qui permet de sélectionner n'importe quelle valeur de cette échelle. La syntaxe générale est :

w = Scale(master, option=value)master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>

Sortir

onze. Haut niveau

Ce widget est directement contrôlé par le gestionnaire de fenêtres. Il n’a besoin d’aucune fenêtre parent pour fonctionner. La syntaxe générale est la suivante :

w = TopLevel(master, option=value)>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

qu'est-ce que le clustering
Python3
from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>

Sortir

12. Message

Il fait référence au texte multiligne et non modifiable. Cela fonctionne de la même manière que celui de Label. La syntaxe générale est :

w = Message(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>

Sortir

13. Bouton de menu

C'est une partie du menu descendant qui reste constamment affichée dans la fenêtre. Chaque bouton de menu a sa propre fonctionnalité. La syntaxe générale est :

w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>

Sortir

14. Barre de progression

Application Tkinter avec un widget Progressbar et un bouton pour démarrer la progression. Lorsque vous cliquez sur le bouton, la barre de progression se remplit jusqu'à 100 % sur une courte période, simulant une tâche qui prend du temps.

Python3
import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>

Sortir

progrès

quinze. SpinBox

Il s’agit d’une entrée du widget « Entrée ». Ici, la valeur peut être saisie en sélectionnant une valeur fixe de nombres. La syntaxe générale est la suivante :

w = SpinBox(master, option=value)>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>

Sortir:

16. Texte

Pour modifier un texte multiligne et formater la façon dont il doit être affiché. La syntaxe générale est :

w =Text(master, option=value)>

Il existe un certain nombre d'options utilisées pour modifier le format du texte. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>

Sortir

17. Toile

Il est utilisé pour dessiner des images et d'autres mises en page complexes telles que des graphiques, du texte et des widgets. La syntaxe générale est :

w = Canvas(master, option=value) master is the parameter used to represent the parent window.>

Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>

Sortie

18. Fenêtre panoramique

Il s'agit d'un widget conteneur qui est utilisé pour gérer le nombre de volets qui y sont disposés. La syntaxe générale est :

w = PannedWindow(master, option=value)>

Master est le paramètre utilisé pour représenter la fenêtre parent. Il existe un certain nombre d'options utilisées pour modifier le format du widget. Le nombre d'options peut être transmis sous forme de paramètres séparés par des virgules. Certains d'entre eux sont énumérés ci-dessous.

Python3
from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>

Sortir

Option de couleur dans Tkinter

Cet exemple montre l'utilisation de diverses options de couleur dans les widgets Tkinter, notamment les couleurs d'arrière-plan et de premier plan actives, les couleurs d'arrière-plan et de premier plan, les couleurs d'état désactivées et les couleurs de sélection. Chaque widget de l'exemple présente une option de couleur différente, fournissant une représentation visuelle de la façon dont ces options affectent l'apparence des widgets.

Python3
import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>

Sortir

2024-04-2516-50-47cutter-vidéo-en-lignecom-ezgifcom-convertisseur-vidéo-en-gif

En savoir plus pour améliorer la police : Police Tkinter

Gestion de la géométrie

Tkinter propose également un accès à la configuration géométrique des widgets qui permet d'organiser les widgets dans les fenêtres parents. Il existe principalement trois classes de classes de gestionnaire de géométrie.

Méthode pack()

Il organise les widgets en blocs avant de les placer dans le widget parent.

Python3
import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>

Sortir


paquet

méthode grille()

Il organise les widgets en grille (structure de type tableau) avant de les placer dans le widget parent.

Python3
import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>

Sortir

formule de maçon

grille

méthode place()

Il organise les widgets en les plaçant sur des positions spécifiques dirigées par le programmeur.

Python3
import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>

Sortir

lieu