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 :

Positionnement d'un notebook


Sujet :

Tkinter Python

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Positionnement d'un notebook
    Bonjour,

    J'essaie d'utiliser le widget Notebook de ttk.
    Mais je sèche sur le positionnement des onglets. Voici le code que j'ai pompé quelque part, sans bien comprendre certains paramètres :
    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
     
    import tkinter as TK
    import tkinter.ttk as TTK
     
    root = TK.Tk()
     
    Onglet1 = TTK.Notebook(root) 
    Onglet1.pack(side=TK.LEFT)
    Onglet1.enable_traversal()
    f1 = TK.Frame(Onglet1, bg='green', bd=5)
    Onglet1.add(f1, text='Onglet 1')
    s1 = TK.Scrollbar(f1,orient=TK.VERTICAL)
    texte1 = TK.Text(f1, wrap=TK.WORD)
    texte1.config(yscrollcommand=s1.set, font=('courier', 11),
    	background='seashell2', foreground='black', insertbackground='purple')
    texte1.grid(column=0, row=0)
    s1.grid(column=1, row=0, sticky=TK.S+TK.N)
    Onglet1.select(Onglet1.index('end')-1)
    texte1.focus_set()
     
    Onglet2 = TTK.Notebook(root) 
    Onglet2.pack() 
    Onglet2.enable_traversal() 
    f2 = TK.Frame(Onglet2, bg='red', bd=5) 
    Onglet2.add(f2, text='Onglet 2')
    s2 = TK.Scrollbar(f2,orient=TK.VERTICAL)
    texte2 = TK.Text(f2, wrap=TK.WORD)
    texte2.config(yscrollcommand=s2.set, font=('courier', 11),
    	background='seashell2', foreground='purple', insertbackground='purple')
    texte2.grid(column=0, row=0)
    s2.grid(column=1, row=0, sticky=TK.S+TK.N)
    Onglet2.select(Onglet2.index('end')-1)
     
    root.mainloop()
    Les paramètres mystérieux sont ceux-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Onglet1.enable_traversal()
    Onglet1.select(Onglet1.index('end')-1)
    texte1.focus_set()
    Onglet2.enable_traversal() 
    Onglet2.select(Onglet2.index('end')-1)

    A aucun moment je ne dimensionne ma fenêtre, ni les notebooks qui sont dedans.
    Quelqu'un saurait-il comment changer la taille et la position de ces notebooks, et comment faire pour qu'ils soient superposés, et non l'un à coté de l'autre ?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par enicnath Voir le message
    A aucun moment je ne dimensionne ma fenêtre, ni les notebooks qui sont dedans.
    Quelqu'un saurait-il comment changer la taille et la position de ces notebooks, et comment faire pour qu'ils soient superposés, et non l'un à coté de l'autre ?
    Relisez votre code, par rapport aux questions posées, çà se résume à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    mport tkinter as TK
    import tkinter.ttk as TTK
     
    root = TK.Tk()
     
    Onglet1 = TTK.Notebook(root, width=200, height=200) 
    Onglet1.pack(side=TK.LEFT)
    ## ...
     
    Onglet2 = TTK.Notebook(root, width=200, height=200) 
    Onglet2.pack() 
    ## ...
     
    root.mainloop()
    Autrement dit, si vous créez 2 notebooks et que vous les placez dans la fenêtre avec pack, çà se comporte comme n'importe quel autre widget (et vous pouvez en préciser les dimensions initiales).
    Je ne comprends pas ce que vous entendez par "pour qu'ils soient superposés": soit vous utilisez "place", soit vous utilisez pack_forget pour sortir le widget affiché et le remplacer par un autre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Autrement dit, si vous créez 2 notebooks et que vous les placez dans la fenêtre avec pack, çà se comporte comme n'importe quel autre widget (et vous pouvez en préciser les dimensions initiales).
    Je ne comprends pas ce que vous entendez par "pour qu'ils soient superposés": soit vous utilisez "place", soit vous utilisez pack_forget pour sortir le widget affiché et le remplacer par un autre.
    Bonjour,

    En fait, je m'aperçois que j'avis mal compris le widget Notebook.

    J'ai trouvé un programme plus clair qui permet de mieux comprendre ce qui se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import tkinter as TK
    import tkinter.ttk as TTK
    root = TK.Tk()
    NB= TTK.Notebook(root) 
    NB.enable_traversal()
    Onglet1 = TK.Frame(width=400, height=300, bg='green') 
    TK.Label(Onglet1, wraplength='4i', justify=TK.LEFT, anchor=TK.N, text="bla bla bla").pack()
    Onglet2 = TK.Frame(width=400, height=300, bg='red') 
    NB.add(Onglet1,text='Onglet 1')
    NB.add(Onglet2,text='Onglet 2')
    NB.pack()
    root.mainloop()
    J'avance donc !

    Merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par enicnath Voir le message
    En fait, je m'aperçois que j'avis mal compris le widget Notebook.
    Pour aller plus vite, vous pourriez regarder la présentation des différents widgets faite sur tkdocs. Puis la documentation des commandes Tk.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Pour aller plus vite, vous pourriez regarder la présentation des différents widgets faite sur tkdocs. Puis la documentation des commandes Tk
    Oui, merci.
    Mais mon souci c'est toujours l'anglais !

    Bon, je signale la discussion comme résolue

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

Discussions similaires

  1. Déplacement ou positionnement d'une fenêtre
    Par agl dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/11/2003, 09h29
  2. positionnement curseur et code ansi
    Par coach dans le forum C
    Réponses: 7
    Dernier message: 03/11/2003, 23h32
  3. LinCVS - Comment positionner CVSROOT ?
    Par sequentaire dans le forum Réseau
    Réponses: 3
    Dernier message: 10/07/2003, 06h53
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

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