Formation PUB400 : Python, 2018 Environnement graphique tkinter

9.2 La fenêtre principale et le mainloop


Dans une application graphique avec tkinter, tout part de la fenêtre principale.

Pour débuter, on doit instancier cette fenêtre.

Python

from tkinter import *

...

fenetre = Tk()

La fenêtre est tout à fait fonctionnelle dès son instanciation. Elle devient cependant plus intéressante si on lui apporte quelques configurations :

  • son titre
    Python

    fenetre.title('Ma première application tkinter')

  • sa taille minimale
    Python

    fenetre.minsize(width=350, height=75)

  • sa couleur de fond
    Python

    fenetre.configure(background='#E5E3D6')   # beige

    ou

    Python

    fenetre.config(background='#E5E3D6')   # beige

  • l'ajout de marges entre les bordures de la fenêtre principale est les widgets qu'on y ajoutera
    Python

    fenetre.configure(padx=20, pady=20)

    ou

    Python

    fenetre.config(padx=20, pady=20)

  • son état
    Python

    fenetre.state('zoomed')

  • etc.

Attendre les interactions de l'usager

Dans une application graphique, il faut mettre en place un mécanisme qui attend que l'usager pose une action, par exemple un clic sur un bouton. Ce mécanisme peut être comparé à une boucle « tant que l'usager n'a pas demandé à ce que le programme se termine, attend qu'il fasse quelque chose ».

Avec tkinter, voici comment faire :

Python

fenetre.mainloop()

Cette instruction fait deux choses : elle affiche la fenêtre principale à l'écran puis elle attend que l'usager pose une action.

En résumé

Donc, avec le petit programme suivant :

Python

#!/usr/bin/env python

 

from tkinter import *

 

fenetre = Tk()
fenetre.mainloop()

On obtient ceci :

Fenêtre vide avec tkinter

et avec un peu de configuration :

Python

#!/usr/bin/env python

 

from tkinter import *

 

fenetre = Tk()

fenetre.title('Ma première application tkinter')

fenetre.minsize(width=350, height=75)

 

# fond beige

fenetre.config(background='#E5E3D6')

 

# marges intérieures

fenetre.config(padx=20, pady=20)

On obtient ceci :

Fenêtre vide avec configurations

Bon, ça ne sert pas à grand chose, me direz-vous. C'est vrai, mais mine de rien, vous avez déjà en place une fenêtre que vous pouvez maximiser, minimiser, redimesionner, déplacer et refermer.

C'est quand même pas mal, avec seulement quelques lignes de code !

▼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