Recherche…


Remarques

Tkinter (" Tk Inter face") est le package multi-plateforme standard de python pour la création d'interfaces utilisateur graphiques (GUI). Il donne accès à un interpréteur Tcl sous-jacent avec la boîte à outils Tk, qui est elle-même une bibliothèque d'interface utilisateur graphique multi-plateforme et multilingue.

Tkinter n'est pas la seule bibliothèque graphique pour python, mais c'est celle qui est fournie en standard. Les bibliothèques GUI supplémentaires pouvant être utilisées avec python incluent wxPython , PyQt et kivy .

La plus grande force de Tkinter réside dans son omniprésence et sa simplicité. Il fonctionne directement sur la plupart des plates-formes (Linux, OSX, Windows) et comprend un large éventail de widgets nécessaires pour les tâches les plus courantes (boutons, libellés, dessin, texte multiligne, etc.).

En tant qu’outil d’apprentissage, tkinter possède des fonctionnalités uniques parmi les kits d’outils d’interface graphique, telles que les polices nommées, les balises de liaison et le suivi des variables.

Différences entre python 2 et 3

Tkinter est pratiquement inchangé entre python 2 et python 3, la principale différence étant que le paquet tkinter et les modules ont été renommés.

Importation dans python 2.x

Dans python 2.x, le package tkinter s'appelle Tkinter et les packages associés ont leurs propres noms. Par exemple, le tableau suivant montre un jeu d'instructions d'importation typique pour python 2.x:

import Tkinter as tk
import tkFileDialog as filedialog
import ttk

Importation en python 3.x

Bien que la fonctionnalité n'ait pas beaucoup changé entre python 2 et 3, les noms de tous les modules tkinter ont changé. Voici un ensemble typique d'instructions d'importation pour python 3.x:

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk

Lectures complémentaires

Versions

Tcl

Version Date de sortie
8.6 2016-07-27
8.5 2016-02-12
8.4 2013-06-01
8.3 2002-10-18
8.2 1999-12-16
8.1 1999-05-26
8.0 1999-03-09

Python

Version Date de sortie
3.6 2016-12-23
3.5 2015-09-13
3.4 2014-03-17
3.3 2012-09-29
3.2 2011-02-20
3.1 2009-06-26
3.0 2008-12-03
2.7 2010-07-03
2.6 2008-10-02
2,5 2006-09-19
2.4 2004-11-30
2.3 2003-07-29
2.2 2001-12-21
2.1 2001-04-15
2.0 2000-10-16

Installation ou configuration

Tkinter est préinstallé avec les fichiers binaires d'installation de Python pour Mac OS X et la plate-forme Windows. Donc, si vous installez Python à partir des binaires officiels pour la plate-forme Mac OS X ou Windows, vous êtes prêt à utiliser Tkinter.

Pour les versions Debian de Linux, vous devez l'installer manuellement en utilisant les commandes suivantes.

Pour Python 3

sudo apt-get installe python3-tk

Pour Python 2.7

sudo apt-get installer python-tk

Les distributions Linux avec l'installateur yum peuvent installer le module tkinter à l'aide de la commande:

yum installer tkinter

Installation en cours de vérification

Pour vérifier si vous avez correctement installé Tkinter, ouvrez votre console Python et tapez la commande suivante:

import tkinter as tk # for Python 3 version

ou

import Tkinter as tk # for Python 2.x version

Vous avez installé avec succès Tkinter, si la commande ci-dessus s'exécute sans erreur.

Pour vérifier la version de Tkinter, tapez les commandes suivantes dans votre Python REPL:

Pour python 3.X

import tkinter as tk
tk._test()

Pour python 2.X

import Tkinter as tk
tk._test()

Remarque: L'importation de Tkinter as tk n'est pas requise, mais c'est une bonne pratique car elle permet de maintenir la cohérence entre les versions.

Bonjour le monde! (minimal)

Testons nos connaissances de base de tkinter en créant le classique "Hello, World!" programme.

D'abord, il faut importer tkinter, cela variera selon la version (voir la section remarques sur "Différences entre Python 2 et 3")

Dans Python 3, le module tkinter a un t minuscule:

import tkinter as tk

Dans Python 2, le module Tkinter a un T majuscule:

import Tkinter as tk 

L'utilisation as tk n'est pas strictement nécessaire, mais nous allons l'utiliser pour que le reste de cet exemple fonctionne de la même manière pour les deux versions.

Maintenant que le module tkinter est importé, nous pouvons créer la racine de notre application en utilisant la classe Tk :

root = tk.Tk()

Cela servira de fenêtre pour notre application. (notez que les fenêtres supplémentaires doivent être des instances de Toplevel place)

Maintenant que nous avons une fenêtre, ajoutons-y du texte avec une Label

label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window

Une fois que l'application est prête, nous pouvons la démarrer (entrez la boucle d' événement principal ) avec la méthode mainloop

root.mainloop()

Cela ouvrira et exécutera l'application jusqu'à ce qu'elle soit arrêtée par la fermeture de la fenêtre ou par l'appel de fonctions existantes à partir de rappels (décrits plus loin), tels que root.destroy() .

Mettre tous ensemble:

import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version

root = tk.Tk()

label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window

root.mainloop()

Et quelque chose comme ça devrait apparaître:

fenêtre tkinter

Bonjour le monde! (modulaire, orienté objet)

import tkinter as tk

class HelloWorld(tk.Frame):
    def __init__(self, parent):
        super(HelloWorld, self).__init__(parent)

        self.label = tk.Label(self, text="Hello, World!")
        self.label.pack(padx=20, pady=20)
        
if __name__ == "__main__":
    root = tk.Tk()

    main = HelloWorld(root)
    main.pack(fill="both", expand=True)

    root.mainloop()

Note: Il est possible d'hériter de presque n'importe quel widget tkinter, y compris la fenêtre racine. L'héritage de tkinter.Frame est sans doute le plus flexible en ce sens qu'il prend en charge plusieurs interfaces de document (MDI), des interfaces de document unique (SDI), des applications à page unique et des applications à plusieurs pages.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow