Commencez à créer des applications de bureau en Python avec la bibliothèque d'interface graphique Tkinter

Commencez à créer des applications de bureau en Python avec la bibliothèque d'interface graphique Tkinter

Tkinter est une boîte à outils d'interface utilisateur graphique (GUI) que vous devriez essayer si vous souhaitez explorer la puissance de Python dans la création d'applications de bureau.





Ici, nous examinons les bases du module d'interface graphique Tkinter.





convertir tablette windows 10 en android

Configuration de Tkinter

En règle générale, vous n'avez pas besoin d'installer tkinter séparément si vous avez installé une version ultérieure de Python, en commençant par Python 3. Cependant, la bibliothèque peut ne pas fonctionner avec les anciennes versions de Python. Il s'agit d'un problème courant pour les utilisateurs Mac et Linux, car ces systèmes d'exploitation sont généralement fournis par défaut avec des versions plus anciennes de Python.





Généralement, pour utiliser le tkinter module, assurez-vous de télécharger et d'installer la dernière version compatible de Python sur votre PC à partir du python.org site Internet.

Si vous êtes sur Mac, vous pouvez également télécharger la dernière version d'ActiveTcl, un tkinter compilateur de État Actif .



Comment utiliser Tkinter

Tkinter dépend de son savoirs traditionnels classer. Et il résume tous les événements de l'interface graphique dans un boucle principale . Ainsi, le boucle principale l'emballage rend votre tkinter code exécutable.

Pour commencer tkinter :





from tkinter import Tk
Tk().mainloop()

L'exécution du code ci-dessus fait tourner un vide tkinter Cadre.

Les fonctionnalités de personnalisation de Tkinter, cependant, se trouvent dans ses widgets intégrés.





Pour utiliser ces widgets, vous pouvez les importer depuis tkinter en remplaçant de tkinter importer Tk avec:

from tkinter import *
t = Tk()
t.mainloop()

Vous pouvez également ajuster la taille de la fenêtre avec le géométrie fonction, puis spécifiez un titre à l'aide de la Titre widget de tkinter :

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Widget d'étiquette Tkinter

Tkinter vous permet d'écrire des textes bruts directement sur l'interface graphique en utilisant le Étiqueter widget :

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

Les la grille() Cependant, la méthode est une alternative à la pack() méthode. Il colle vos widgets à l'interface graphique, les rendant visibles.

Vous pouvez également spécifier une police pour votre Étiqueter texte:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Travailler avec les widgets de bouton dans Tkinter

Les boutons font partie des widgets les plus utilisés dans tkinter . Et vous pouvez ajouter ces boutons cliquables à votre interface graphique à l'aide des divers widgets de boutons intégrés.

Voici comment ajouter un bouton principal à votre interface graphique en utilisant le Bouton widget :

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

Les bg et fg les mots-clés décrivent respectivement la couleur d'arrière-plan du bouton et la couleur du texte qu'il contient.

Vous pouvez également ajuster la dimension du bouton en incluant le la taille et largeur paramètres:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

Voici la sortie pour cela:

comment surveiller le trafic du réseau domestique

Et si vous voulez rendre le bouton plus attrayant, vous pouvez inclure un soulagement mot-clé, puis ajustez la largeur de sa bordure :

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

Et ça ressemble à ça :

Remplacer SOULEVÉ avec APPARTEMENT pour voir comment ça se passe.

Vous pouvez ajouter autant de boutons que vous le souhaitez. Mais vous faites attention à éviter le chevauchement de contenu.

Pour éviter les chevauchements, vous pouvez spécifier la position des lignes et des colonnes pour chaque bouton :

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()

Un facultatif commander Cependant, le mot-clé ajoute des événements au Bouton widget. Essentiellement, il ancre une fonction facultative qui gère certains événements lorsque vous cliquez sur un bouton.

Le code ci-dessous, par exemple, multiplie la valeur de chaque bouton par 6 lorsque vous cliquez dessus. Et il est basé sur une fonction prédéfinie :

def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

Dans le code ci-dessus, appuyer sur un bouton gère l'événement de multiplication. Les Bouton widget pointe ensuite vers ce gestionnaire d'événement à l'aide d'un lambda fonction.

Et si vous vous inquiétez de la tampons mot-clé, il sépare distinctement chaque bouton sur la ligne. Remplacer cela par padx sépare les boutons à travers la colonne. Et vous pouvez utiliser les deux mots-clés simultanément pour séparer les boutons sur les deux axes à votre guise.

Cela dit, vous ne voulez pas réinventer la roue pour chaque bouton comme vous l'avez fait dans le code précédent. Cela ralentit le temps d'exécution et rend votre code difficile à lire et à affiner.

Mais tu peux utiliser une boucle for pour éviter cette répétition.

Voici donc une version plus courte et meilleure du code ci-dessus :

def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

Explorons plus avant le pouvoir de pour boucle pour ajouter des boutons de menu à votre interface graphique :

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

L'ajout de boutons de contrôle à votre interface graphique est également assez simple :

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

N'hésitez pas à multiplier cette case à cocher en utilisant le pour boucle, comme nous l'avons fait plus tôt.

Comment créer un menu déroulant avec le widget de menu de Tkinter

Les Menu widget vous permet de concevoir des menus déroulants cliquables dans tkinter .

Comme indiqué précédemment, tkinter offre de nombreuses options de widgets. Et vous en utiliserez certains lors de la conception de votre menu déroulant.

Voici quelques-unes des options de widgets courantes que vous rencontrerez en créant une liste déroulante :

  • add_cascade : Il affiche une étiquette de menu et la colle à sa place.
  • add_separator : Il délimite les sous-menus et les regroupe en sous-menus supérieur et inférieur.
  • add_command : C'est ici que vous donnez un nom à votre sous-menu. En fin de compte, il accepte un argument de commande dans lequel vous pouvez spécifier un gestionnaire d'événements.

Voici un exemple de liste déroulante qui utilise ces trois options :

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()

Voyez à quoi cela ressemble:

Menu d'options de Tkinter

Un Menu d'options , contrairement au Menu liste déroulante, bascule son étiquette sur une option sélectionnée.

Bien que vous puissiez spécifier une valeur d'étiquette par défaut pour un menu d'options, celui-ci n'a pas d'étiquette par défaut.

En rapport: Idées de projets Python adaptées aux débutants

Voici comment créer un menu d'options dans tkinter :

t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

Créez une application de bureau réutilisable avec Tkinter

Tkinter offre un éventail de fonctionnalités qui vous aident à créer des applications de bureau GUI interactives. Bien qu'il n'ait pas beaucoup de fonctionnalités d'embellissement flexibles comme certains autres modules d'interface graphique Python, c'est toujours un outil pratique qui mérite d'être exploré. Et bien que les exemples ici ne montrent que quelques-uns des concepts de base, tkinter offre des fonctionnalités plus avancées que vous pouvez essayer.

pourquoi iTunes ne reconnait-il pas mon iphone

Cela dit, vous pouvez créer une calculatrice de bureau à interface graphique, créer un mini éditeur de texte ou même créer une application de bureau à interface graphique pour gérer vos inventaires. Si vous souhaitez déployer vos ailes et devenir un major de l'interface graphique de bureau, vous pouvez même consulter d'autres modules d'interface graphique de Python.

Partager Partager Tweeter E-mail IHM graphique ? Qu'est-ce qu'une interface utilisateur graphique ?

Utilisez-vous une interface graphique ? Il y a de fortes chances que vous en ayez parce que vous les utilisez tous les jours.

Lire la suite
Rubriques connexes
  • La programmation
  • Python
A propos de l'auteur Idisou Omisola(94 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il s'amuse avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi de temps en temps rompre avec la routine. Sa passion pour montrer aux gens la voie à suivre avec la technologie moderne le motive à écrire davantage.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner