IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

ajouter des widgets dans des frames [Python 3.X]


Sujet :

Tkinter Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut ajouter des widgets dans des frames
    Bonjour,

    j'aimerais comprendre pourquoi je ne peux pas rajouter des widgets (Label, Text etc) dans différentes Frames que composent ma fenêtre principale.

    Voici mon code très simple, vous y verrez mes tentatives d'ajout d'un simple label, j'ai d'abord utilisé les points cardinaux, puis ici, les rows/column, mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    from tkinter import *
     
    class Application(Frame):
        def __init__(self, master):
            Frame.__init__(self,master)
            self.grid()
            self.frameLeftTop()
            self.frameLeftBottom()
            self.frameRightTop()
            self.frameRightBottom()
     
        def frameLeftTop(self):
            self.leftTop = Frame(root,width=400,height=200,pady=5,bg="red").grid(row=0, column=0)
            Label(self.leftTop,text="Label 1").grid(row=0, column=0,sticky="wn")
            Text(self.leftTop,height=6,width=40).grid(row=1,column=0,sticky="wn")
            Button(self.leftTop,text="Exécuter",width=50,bg="white").grid(row=2,column=0,sticky="wn")
     
        def frameLeftBottom(self):
            self.leftBottom = Frame(root,width=400,height=200,pady=5,bg="green").grid(row=1, column=0)
            Label(self.leftBottom,text="Label 2").grid(row=1, column=0,sticky="n")
     
        def frameRightTop(self):
            self.rightTop = Frame(root,width=400,height=200,pady=5,bg="yellow").grid(row=0, column=1)
            Label(self.rightTop,text="Label 3").grid(row=0, column=1,sticky="n")
     
        def frameRightBottom(self):
            self.rightBottom = Frame(root,width=400,height=200,pady=5,bg="black").grid(row=1, column=1)
            Label(self.rightBottom,text="Label 4").grid(row=1, column=1,sticky="n")
     
    root = Tk()
    root.title("Frames")
    root.geometry("800x400")
    app = Application(root)
     
    root.mainloop()
    Je ne comprends pas le comportement des rows,columns. Mes labels devraient se situer en row=0 et column=0 de CHAQUE Frame mais visiblement elles se comportent comme si je les plaçaient dans la fenêtre principale :
    comme suit tout marche, mais utilise le conteneur principal du coup et plus mes Frames de "sous divisions" :
    row=0, column=0
    row=1, column=0
    row=0, column=1
    row=1, column=1

    les Frames ne sont elles pas des conteneurs à part entière tout comme root = Tk() ?
    en somme je voudrais des boites dans une boite, et y placer mes widgets à l’intérieur...

    Merci à tous.
    Dernière modification par Invité ; 26/03/2017 à 12h06.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/03/2017, 09h01
  2. Réponses: 1
    Dernier message: 20/09/2016, 22h09
  3. [Python 2.X] Alignement des widgets dans des frames
    Par Shozma dans le forum Tkinter
    Réponses: 2
    Dernier message: 02/06/2016, 15h52
  4. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo