Back

Gestion de la mise en page en tkinter

Gestion de la mise en page en tkinter

  1. Objectifs

    • Connaitre les les méthodes de positionnement pack(), grid() et place()
    • Etre capable de disposer les widgets Tkinter avec les méthodes pack(), grid() et place().
  2. Introduction

    • Tous les widgets Tkinter ont accès aux méthodes de gestion de géométrie spécifiques, qui ont pour but d’organiser les widgets dans la zone du widget parent. Tkinter possède les classes de gestionnaire de géométrie suivantes :
      1. La méthode pack()
      2. La méthode grid()
      3. La méthode place()



  3. La méthode pack() | Tkinter Python 3

    1. Présentation
      • Ce gestionnaire de géométrie organise les widgets en blocs avant de les placer dans le widget parent.
      • La méthode pack, comme indiqué littéralement, empaquette le widget dans le cadre de la fenêtre après sa création.
      • Cette méthode empile les objets les uns à la suite des autres. Par défaut, elle les empile les uns en dessous des autres. Par exemple, l’exemple suivant produit l’empilement des objets.
    2. Syntaxe et paramètres
      • widget.pack( pack_options )
    3. Listes d’options dans Tkinter pack
      • expand : Lorsqu’il est défini sur true, le widget se développe pour remplir tout espace non utilisé dans le parent du widget.
      • fill : Détermine si le widget remplit tout espace supplémentaire qui lui est alloué par le packer, ou conserve ses propres dimensions minimales: NONE (par défaut), X (remplir uniquement horizontalement), Y (remplir uniquement verticalement) ou BOTH (remplir à la fois horizontalement et verticalement ).
      • side : Détermine le côté du widget parent par rapport à: TOP (par défaut), BOTTOM, LEFT ou RIGHT.
    4. Exemple
      • import tkinter as tk    
            
        app = tk.Tk()
        app.geometry('300x300')
        
        cours = ['Saisissez votre prénom :','Saisissez votre nom : ',
                 'Date de naissance : ','Saisissez votre adresse : ','Saisissez votre téléphone : ',
                 'Saisissez votre localité']
        
        
        for c in cours:
            l = tk.Label (app,text = c, width=30)
            l.pack ()
            s = tk.Entry (app, width=20)
            s.pack ()
        app.mainloop()
  4. La méthode grid()

    1. Présentation
      • Le gestionnaire grid() "découpe" chaque fenêtre ou cadre en une grille formée de lignes et de colonnes.
      • Le gestionnaire de disposition géométrique grid(), organise les widgets dans une structure de type table dans le widget parent.
      • Tkinter grid est une autre et aussi la plus importante des méthodes de géométrie d’implantation. C’est celle que vous devez apprendre si vous voulez apprendre une seule méthode parmi tous les gestionnaires de géométrie.
      • La grid est souvent utilisée dans les boîtes de dialogue, et vous pourriez placer les widgets en fonction des coordonnées de position de la grille. La méthode de disposition de la grille peut avoir des positions relatives stables de tous les widgets.
    2. Syntaxe
      • widget.grid( grid_options )
    3. Listes d’options dans Tkinter Grid
      • column: Cette option est utilisée pour placer le widget dans une colonne qui est la colonne la plus à gauche. La valeur par défaut est 0.
      • columnspan : Normalement un widget occupe seulement une cellule. Cependant, vous pouvez regrouper plusieurs cellules d’une ligne en indiquant via columnspan le nombre de cellules à regrouper.
      • row: Cette option est lorsque le widget est à mettre dans une ligne, par défaut la première ligne est vide.
      • rowspan : Cette option sera utilisée pour dire combien de rowwidgets sont occupés et la valeur par défaut est 1.
      • ipadx et ipady: Ces deux options sont utilisées pour le nombre de pixels sur l’interface pour remplir les widgets respectivement horizontalement et verticalement, mais elles seront utilisées dans le remplissage à l’intérieur de la bordure des widgets.
      • padx et pady: ces deux options sont similaires aux options ci-dessus, mais elles sont utilisées pour remplir les bordures extérieures des widgets en remplissant horizontalement et verticalement les pixels.
      • sticky: Cette option détermine la façon de distribuer l’espace inoccupé par un widget à l’intérieur d’une cellule.
        • Si vous ne donnez aucune valeur à l’attribut sticky, le comportement par défaut est de centrer le widget dans sa cellule.
        • Vous pouvez positionner le widget dans un des coins de la cellule en indiquant sticky='ne' (nord-est: en haut à droite), ‘se‘ (en bas à droite), ‘sw‘ (en bas à gauche), ou ‘nw‘ (en haut à gauche).
        • Vous pouvez centrer le widget contre l’un des bords de la cellule en utilisant sticky='n' (centré en haut), ‘e‘ (centré à droite), ‘s’ (centré en bas), ou ‘w’ (centré à gauche).
        • Utilisez sticky='ns' pour l’étirer verticalement tout en le laissant centré horizontalement.
        • Utilisez sticky='ew' pour l’étirer horizontalement tout en le laissant centré verticalement.
        • Utilisez sticky='nesw' pour l’étirer dans les deux directions afin de remplir la cellule.
        • Les autres combinaisons fonctionneront aussi. Par exemple, sticky='nsw' l’étirera verticalement en le plaçant contre le bord gauche de la cellule.
    4. Exemples
      1. Version:01
        • # −*− coding : utf−8 −*−
          from tkinter import *
          
          #Création d’une fenêtre
          fntre=Tk()
          fntre.geometry("350x100")
          
          #Création des widgets
          Prenom = Label(fntre, text="Saisissez votre prénom : " )
          Nom = Label(fntre, text = "Saisissez votre nom : " )
          dateN = Label(fntre, text = "Date de naissance : " )
          adresse = Label(fntre, text = "Saisissez votre adresse : " )
          
          
          champNom = Entry(fntre)
          champPrenom = Entry(fntre)
          champdateN = Entry(fntre)
          champadresse = Entry(fntre)
          
          #Application de la méthode grid () aux widget
          Prenom.grid(row=0, column=0)
          Nom.grid(row=1, column=0)
          dateN.grid(row=2, column=0)
          adresse.grid(row=3, column=0)
          
          
          champPrenom.grid(row=0, column=1)
          champNom.grid (row=1, column=1)
          champdateN.grid (row=2, column=1)
          champadresse.grid(row=3, column=1)
          
          fntre.mainloop ()
          
          
      2. Version:02
        • from tkinter import *
          fnetre=Tk()
          #import tkinter as tk
          fnetre.geometry("300x200")
          cours = ['Saisissez votre prénom :','Saisissez votre nom : ',
                   'Date de naissance : ','Saisissez votre adresse : ','Saisissez votre téléphone : ',
                   'Saisissez votre localité']
          r = "cours numéro :"
          i=1
          for c in cours:
              r=Label(text=c, width=20).grid(row=i,column=0)
              r=Entry(fnetre,
                        width=20).grid(row=i,column=1,padx=4, pady=4)
              i+=1
          fnetre.mainloop()
          
  5. La méthode place()

    1. Présentation
      • Ce gestionnaire de géométrie organise les widgets en les plaçant dans une position spécifique dans le widget parent.
    2. Syntaxe
      • widget.place( place_options )
    3. Listes d’options dans Tkinter place
      • anchor : L’endroit exact du widget auquel les autres options se réfèrent: peut être N, E, S, W, NE, NW, SE ou SW, les directions de la boussole indiquant les coins et les côtés du widget; la valeur par défaut est NW (le coin supérieur gauche du widget)
      • bordermode - INSIDE (par défaut) pour indiquer que les autres options font référence à l’intérieur du parent (en ignorant la bordure du parent); À L’EXTÉRIEUR autrement.
      • height, width - Hauteur et largeur en pixels.
      • relheight, relwidth – Hauteur et largeur sous forme de flottant entre 0,0 et 1,0, en tant que fraction de la hauteur et de la largeur du widget parent.
      • relx, trust – Décalage horizontal et vertical sous forme de flottant entre 0,0 et 1,0, en tant que fraction de la hauteur et de la largeur du widget parent.
      • x, y : Décalage horizontal et vertical en pixels.
    4. Exemple






Riadh HAJJI

Laisser un commentaire

Abonnez vous à notre chaîne YouTube gratuitement