Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Les Widgets

Champ de saisie

On suppose que l'on a créé une fenêtre

  >>> fen=Tk()

Alors...

  >>> entree = Entry(fen)
  >>> entree.pack()

Crée un emplacement dans fen, dans lequel on peut saisir du texte.

Pour récupérer le texte saisi :

  >>> entree.get()

Exécution d'une commande

Supposons maintenant que l'on souhaite exécuter une fonction evaluer quand la touche Return est poussée. On agira ainsi :

  >>> entree.bind("<Return>", evaluer)

bind permet de relier l'événement "appuyer sur Return" à l'objet entree, le gestionnaire de cet événement étant la fonction evaluer.

Champ de texte

On a déjà vu comment créer un champ de texte avec Label() :

  >>> texte=Label(fen,text='toto')
  >>> texte.pack()

Pour changer la valeur d’un champ de texte, on utilise la méthode configure

  >>> texte.configure(text='toto2')

Description de quelques widgets

Button

Un bouton classique, à utiliser pour provoquer l'exécution d’une commande quelconque.

Canvas

Un espace pour disposer divers éléments graphiques. Ce widget peut être utilisé pour dessiner, créer des éditeurs graphiques, et aussi pour implémenter des widgets personnalisés.

Checkbutton

Une « case à cocher » qui peut prendre deux états distincts (la case est cochée ou non). Un clic sur ce widget provoque le changement d’état.

Entry

Un champ d’entrée, dans lequel l'utilisateur du programme pourra insérer un texte quelconque à partir du clavier.

Frame

Une surface rectangulaire dans la fenêtre, où l'on peut disposer d'autres widgets. Cette surface peut être colorée. Elle peut aussi être décorée d'une bordure.

Label

Un texte (ou libellé) quelconque (éventuellement une image).

Listbox

Une liste de choix proposés à l'utilisateur, généralement présentés dans une sorte de boîte.

On peut également configurer la Listbox de telle manière qu’elle se comporte comme une série de « boutons radio » ou de cases à cocher.

Menu

Un menu. Ce peut être un menu déroulant attaché à la barre de titre, ou bien un menu « pop up » apparaissant n'importe où à la suite d’un clic.

Menubutton

Un bouton-menu, à utiliser pour implémenter des menus déroulants.

Message

Permet d’afficher un texte. Ce widget est une variante du widget Label, qui permet d'adapter automatiquement le texte affiché à une certaine taille ou à un certain rapport largeur/hauteur.

Radiobutton

Représente (par un point noir dans un petit cercle) une des valeurs d'une variable qui peut en posséder plusieurs.

Cliquer sur un « bouton radio » donne la valeur correspondante à la variable, et "vide" tous les autres boutons radio associés à la même variable.

Un exemple d'utilisation ici.

Scale

Vous permet de faire varier de manière très visuelle la valeur d'une variable, en déplaçant un curseur le long d’une règle.

Scrollbar

« ascenseur » ou « barre de défilement » que vous pouvez utiliser en association avec les autres widgets : Canvas, Entry, Listbox, Text.

Text

Affichage de texte formaté. Permet aussi à l'utilisateur d’éditer le texte affiché. Des images peuvent également être insérées.

Toplevel

Une fenêtre affichée séparément, « par-dessus »

Exemples d'utilisation

Associer un délai à un widget

Associer un délai à un widget, on fait par exemple

  >>> wid.after(200,qqc)

ce qui déclenche pour le widget wid un appel de la fonction qqc() après une pause de 200 millisecondes.

Une calculette, issue du livre de G. Swinnen

Voici comment programmer une calculette rudimentaire :

  >>> from Tkinter import *
  >>> from math import *
  >>> def evaluer(event) :
  ...     chaine.configure(text = "Resultat = " + str(eval(entree.get())))
  ...
  >>> fenetre = Tk()
  >>> entree = Entry(fenetre)
  >>> entree.bind("<Return>", evaluer)
  >>> chaine = Label(fenetre)
  >>> entree.pack()
  >>> chaine.pack()
  >>> fenetre.mainloop()

Page Actions

Recent Changes

Group & Page

Back Links