Contenu | Rechercher | Menus

Python Tkinter, installation et premiers pas

Installation

Pour installer Tkinter, il suffira de saisir dans un terminal:

sudo apt-get install python-tk

Pour les utilisateurs de python en version 3.x vous devrez taper:

sudo apt-get install python3-tk

Et voila ;) c'est fait.

Premiers pas

Comprendre la structure du code

Pour commencer, il est nécéssaire de comprendre la structure du code. Comme vous savez que tout est objet en python, dans le cas de Tkinter, c'est la même chose. Nous allons prendre comme exemple un widget 'Button'.

#!/usr/bin/env python
# -*- coding: Utf-8 -*-
#
 
from Tkinter import *
 
class Application(object):
	def __init__(self):
		self.fen = Tk()
 
		self.bouton = Button(self.fen, text='Je suis un bouton')
 
		self.bouton.pack()
		self.fen.mainloop()
 
if __name__ == '__main__':
	app = Application()

Nous allons nous intéréser à cette ligne:

self.bouton = Button(self.fen, text='Je suis un bouton')

Dans un premier temps, nous créons une variable:

self.bouton

Ensuite nous assignons un widget à cette variable:

Button

Et pour finir nous indiquons le parent de ce widget et nous lui donnons diffèrentes options:

(self.fen, text='Je suis un bouton')

Vous notterez ici que le parent est

self.fen

et que l'option est:

text='Je suis un bouton'

Chaque widgets, à ces propres options, même si beaucoup sont praticable sur tous. (nottament les options de configurations). Ceci résume à dire que:

Widget(Parent, options, ...)

Une question qui revient souvent: """Comment puis-je connaitre les options dédiés au widget que je veux utilisé?""" C'est trés simple, il vous suffit de lancer python en interactif, d'importer Tkinter et d'instancier une fenêtre puis:

from Tkinter import *
 
fen = Tk() #Notre but ici n'est pas de créer un programme...
 
fen.keys()

Ce qui va nous donner:

['bd', 'borderwidth', 'class', 'menu', 'relief', 'screen', 'use', 'background', 'bg', 'colormap', 'container', 'cursor', 'height', 'highlightbackground', 'highlightcolor', 'highlightthickness', 'padx', 'pady', 'takefocus', 'visual', 'width']

Explication: J'ai demandé de connaitre toutes les clé pour

fen

J'aurais tout aussi bien pu demander ceci:

Button.keys()
#ou encore
Slider.keys()

Donc pour reprendre l'exemple avec un code unique:

widget.keys()

Notez bien que vous récupérer les clé et non pas les valeurs…Il va faloir prendre un peu d'expérience ou zoner un peu sur internet pour les découvrir. Je vous en donne deux que nous allons utiliser trés trés trés souvent:

#width (largeur)
var = Widget(parent, width=int) #int=integer ou entier en françcais
#ou
bou = Button(fen, width=40 #à noter que la largeur s'exprime caractère dans le cas d'un bouton
 
#height (hauteur)
var = Widget(parent, height=int)
#ou
bou = Button(fen, height=600)
 
#Il est tout à fait possible de cumuler plusieurs options (clé):
var = Widget(parent, option1, option2, ...)
#ou
bou = Button(fen, width=40, height=30)

La structure du code est la même pour tous les widgets. Il vous suffit de comprendre cela, et vous pourrez passer à la suite ;)

Votre premier programme

Nous allons voir ici une première approche d'un petit programme qui servira hum.. à rien, il faut le dire on est là pour apprendre 8-) .

#!/usr/bin/env python
# -*- coding: Utf-8 -*-
#
 
from Tkinter import *
 
class Application(object):
	def __init__(self):
		self.fen = Tk()
		self.fen.title('Mon premier Programme Tkinter')
 
		self.titre = Label(self.fen, text='Bienvenu dans Tkinter !')
		self.titre.pack()
 
		self.bou_valider = Button(self.fen, text='Valider')
		self.bou_valider.pack()
 
		self.bou_quitter = Button(self.fen, text='Quitter')
		self.bou_quitter.pack()
 
		self.fen.mainloop()
 
if __name__ == '__main__':
	app = Application()

Et pour imager le code ci-dessus, l'image qui va avec.

Nous nous retrouvons donc avec:

  1. Une fenêtre
  2. Un texte
  3. Un bouton valider
  4. Un bouton quitter

Un peu d'explications… Pour commencer j'importe la librairie Tkinter.

from Tkinter import *

J'aurais tout aussi pu faire de cette manière

import Tkinter
#ou encore
import Tkinter as tk
#ou pour pousser plus loin;
from Tkinter import Tk, Label, Button

Ensuite je créer une instance Tk() donc ma fenêtre principale (aussi appelé 'Frame') à l'aide d'une variable (choisit par mes soins).

self.fen = Tk()

Je configure ensuite le titre de cette fenêtre avec une méthode.

self.fen.title('Mon premier programme Tkinter')

Les méthodes sont des termes bien définit par le constructeur de Tkinter. Ce sont des travaux à effectuer selon certaines conditions (les options, les commandes, etc, etc). Il existe de multiple méthodes notamment la méthode 'pack()' qui est une méthode de placement trés basique que j'utilise pour commencer un premier programme.

self.titre.pack()
self.bou_valider.pack()
self.bou_quitter.pack()

Cette méthode de placement peut prendre divers arguments/options que nous verrons un peu plus tard.

Les lignes qui suivent créer les widgets en les configures:

self.titre = Label(self.fen, text='Bienvenue dans Tkinter !')
self.bou_valider = Button(self.fen, text='Valider')
self.bou_quitter = Button(self.fen, text='Quitter')

Et pour finir:

self.fen.mainloop()

Ceci lance le gestionnaire d’évènements. Le gestionnaire d’évènements est indispensable car c'est lui qui permet de faire tourner le programme. Pourquoi? Parce que si le gestionnaire d’évènements n'est pas lancé, le code est exécuté et python met fin au programme, normal ;-) . C'est ensuite les divers fonctions que vous aurez crées qui traiterons les 'évènements' (clics, frappe au clavier, déplacement, etc, etc)

Vous pensez aimer Tkinter? alors on continue ;)



Le contenu de ce wiki est sous licence : CC BY-SA v3.0