Tkinter - Tkinter

Tkinter est une liaison Python à la boîte à outils Tk GUI . Il s'agit de l'interface Python standard de la boîte à outils de l'interface graphique Tk et de l' interface graphique standard de facto de Python . Tkinter est inclus avec les installations standard GNU/Linux , Microsoft Windows et macOS de Python.

Le nom Tkinter vient de Tk interface . Tkinter a été écrit par Fredrik Lundh.

Tkinter est un logiciel libre publié sous une licence Python .

La description

Comme pour la plupart des autres liaisons Tk modernes, Tkinter est implémenté en tant que wrapper Python autour d'un interpréteur Tcl complet intégré dans l' interpréteur Python . Les appels Tkinter sont traduits en commandes Tcl, qui sont transmises à cet interpréteur embarqué, permettant ainsi de mélanger Python et Tcl dans une seule application.

Il existe plusieurs alternatives de bibliothèques GUI populaires, telles que wxPython , PyQt , PySide , Pygame , Pyglet et PyGTK .

Quelques définitions

Fenêtre

Ce terme a différentes significations dans différents contextes, mais en général, il fait référence à une zone rectangulaire quelque part sur l'écran d'affichage de l'utilisateur.

Fenêtre de niveau supérieur

Une fenêtre qui agit comme un enfant de la fenêtre principale. Il sera décoré du cadre standard et des commandes du gestionnaire de bureau . Il peut être déplacé sur le bureau et peut généralement être redimensionné.

Widget

Terme générique désignant l'un des éléments constitutifs d'une application dans une interface utilisateur graphique.

  • Widgets principaux : Les conteneurs : frame, labelframe, toplevel, fenêtre à volets. Les boutons : bouton, bouton radio, bouton à cocher (case à cocher) et bouton de menu. Les widgets texte : libellé, message, texte. Les widgets d'entrée : échelle, barre de défilement, liste, curseur, spinbox, entrée (une ligne), menu d'options, texte (multiligne) et canevas (graphiques vectoriels et pixelisés).
  • Tkinter fournit trois modules qui permettent d'afficher des boîtes de dialogue contextuelles : tk.messagebox (boîtes de dialogue de confirmation, d'information, d'avertissement et d'erreur), tk.filedialog (boîtes de dialogue de sélection de fichier unique, de fichiers multiples et de répertoire) et tk.colorchooser (sélecteur de couleurs) .
  • Python 2.7 et Python 3.1 intègrent la fonctionnalité "themed Tk" ("ttk") de Tk 8.5. Cela permet aux widgets Tk d'être facilement thématisés pour ressembler à l'environnement de bureau natif dans lequel l'application s'exécute, répondant ainsi à une critique de longue date de Tk (et donc de Tkinter). Certains widgets sont exclusifs à ttk, tels que les widgets combobox, progressbar et treeview

Cadre

Dans Tkinter, le widget Frame est l'unité d'organisation de base pour les mises en page complexes. Un cadre est une zone rectangulaire qui peut contenir d'autres widgets.

Enfant et parent

Lorsqu'un widget est créé, une relation parent-enfant est créée. Par exemple, si vous placez une étiquette de texte à l'intérieur d'un cadre, le cadre est le parent de l'étiquette.

Une application minimale

Voici une application Python 3 Tkinter minimale avec un widget :

#!/usr/bin/env python3
from tkinter import *
root = Tk() 							# Create the root (base) window 
w = Label(root, text="Hello, world!") 	# Create a label with words
w.pack() 								# Put the label into the window
root.mainloop() 						# Start the event loop

Pour Python 2, la seule différence est que le mot " tkinter " dans la commande d'importation sera en majuscule " Tkinter ".

Traiter

Il y a quatre étapes pour créer un widget

Créer
le créer dans un cadre
Configurer
modifier les attributs des widgets.
Pack
placez-le en place pour qu'il devienne visible. Les développeurs ont également la possibilité d'utiliser .grid() (row= int , column= int pour définir des lignes et des colonnes pour positionner le widget, la valeur par défaut est 0) et .place() (relx= int ou decimal , compter= int ou decimal , définissez les coordonnées dans le cadre ou la fenêtre).
Lier
le lier à une fonction ou à un événement.

Ceux-ci sont souvent compressés et l'ordre peut varier.

Application simple

En utilisant le paradigme orienté objet de Python, un programme simple serait (nécessite Tcl version 8.6, qui n'est pas utilisé par Python sur MacOS par défaut) :

#!/usr/bin/env python3

import tkinter as tk


class Application(tk.Frame):

    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):
        self.mondialLabel = tk.Label(self, text='Hello World')
        self.mondialLabel.config(bg="#00ffff")
        self.mondialLabel.grid()
        self.quitButton = tk.Button(self, text='Quit', command=self.quit)
        self.quitButton.grid()


app = Application()
app.master.title('Sample application')
app.mainloop()
  • ligne 1 : directive Hashbang au lanceur de programme, permettant la sélection d'un exécutable interpréteur approprié, lors de l'auto-exécution.
  • ligne 3 : importe le module tkinter dans l'espace de noms de votre programme, mais le renomme en tk.
  • ligne 6 : La classe d'application hérite de la classe Frame de Tkinter.
  • ligne 8 : Définit la fonction qui configure le Frame.
  • ligne 9 : appelle le constructeur de la classe parent, Frame.
  • ligne 13 : Définition des widgets.
  • ligne 14 : crée une étiquette, nommée MondialLabel avec le texte "Hello World".
  • ligne 15 : définit la couleur d'arrière-plan de MondialLabel sur cyan.
  • ligne 16 : Place l'étiquette sur l'application afin qu'elle soit visible à l'aide de la méthode du gestionnaire de géométrie de grille.
  • ligne 17 : crée un bouton intitulé « Quitter ».
  • ligne 18 : Place le bouton sur l'application. Grid, place et pack sont toutes des méthodes pour rendre le widget visible.
  • ligne 21 : Le programme principal démarre ici en instanciant la classe Application.
  • ligne 22 : cet appel de méthode définit le titre de la fenêtre sur « Exemple d'application ».
  • ligne 23 : démarre la boucle principale de l'application, en attendant les événements de la souris et du clavier.

Les références

Liens externes