Formation PUB400 : Python, 2018 Environnement graphique tkinter

9.4 Libellés et positionnement à l'écran


Dans une application graphique avec tkinter, il faut instancier un objet pour chacun des widgets à afficher.

Ceci sera fait après l'instanciation de la fenêtre principale et généralement avant le mainloop().

Ex :

Python

#!/usr/bin/env python

 

from tkinter import *

 

fenetre = Tk()

 

# instanciation et affichage des autres widgets ici


fenetre.mainloop()

Label

Le widget Label permet d'afficher un libellé dans la fenêtre.

Il faut passer au moins deux paramètres au constructeur :

  • Une référence à l'objet dans lequel le libellé doit être affiché. Le plus souvent, ce sera la fenêtre principale.
  • Le texte à afficher. tkinter demande à ce qu'on fournisse ce paramètre sous la forme text='...'.

Par exemple, pour instacier un widget qui affiche le texte « Hello World » :

Python

libelle = Label(fenetre, text='Hello World')

Positionnement à l'écran

Un widget instancié n'apparaitra pas à l'écran tant que l'on ne lui dira pas à quel endroit il doit être affiché.

Avec tkinter, il existe trois principales méthodes pour positionner les widgets à l'écran :

  • pack() : c'est la méthode la plus simple. Elle permet de placer une série de widgets les uns à la suite des autres à la verticale ou à l'horizontale.
  • grid() : un peu plus polyvalente que pack(), elle permet de positionner les widgets dans un système de lignes et de colonnes.
  • place() : c'est la méthode la plus polyvalente mais aussi la plus complexe. Elle permet de positionner chaque widget à une position précise de façon relative ou absolue.

Dans une même fenêtre, il ne faut pas mélanger ces méthodes. On en choisit une et on l'utilise partout dans cette fenêtre.

Ainsi, pour que le libellé « Hello World » apparaisse dans la fenêtre principale, il faudra ajouter :

Python

libelle = Label(fenetre, text='Hello World')

libelle.pack()

Le programme entier ira comme suit :

Python

#!/usr/bin/env python

 

from tkinter import *

 

# fenêtre principale

fenetre = Tk()

 

# libellé à afficher

libelle = Label(fenetre, text='Hello World')

libelle.pack()

 

# la fenêtre s'affiche puis attend les interactions de l'usager
fenetre.mainloop()

Hello World

Bon, ce n'est pas très joli mais on y reviendra.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre