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

Python Discussion :

Text des boutons disparaissent a cause de Label avec grid()


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut Text des boutons disparaissent a cause de Label avec grid()
    Salut,
    tout est dans le titre... aidez moi svp

    Incompréhensible... aucun message d'erreur car le code est correct, quand je retire le label je vois le texte du bouton et quand je mets le label, le texte disparaît...
    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
    # -*- coding: utf-8 -*-
    from tkinter import Frame, Tk, Text, Toplevel
    import tkinter.ttk as ttk
    import os
    import Mission3 as mi3
     
    class Example(Frame):
        def __init__(self, parent):
            Frame.__init__(self, parent)
     
            self.parent = parent
            self.initUI()
     
        def initUI(self):
     
            self.grid(sticky='we')
     
            #ttk.Label(self, width=300, text="test??").grid(row=0)#Si je l'enleve je vois test et test2 
     
            bouton = ttk.Button(self, text='test2')
            bouton.grid(sticky='we', row=2)
     
    def main():
        root = Tk()
        ex = Example(root)
        root.geometry("300x300+100+100")
     
        bouton = ttk.Button(root, text='test')
        bouton.grid(sticky='we', row=1)
     
        root.mainloop()
     
     
    if __name__ == '__main__':
        main()
    Ps : si qqn peut m'expliquer pourquoi test2 apparait toujours en premier meme avec row=2.... merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    ligne 16, écrivez self.grid(sticky='we', row=2) et essayez de comprendre ce qu'il se passe.

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

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    ligne 16, écrivez self.grid(sticky='we', row=2) et essayez de comprendre ce qu'il se passe.

    - W
    Merci,
    le texte du bouton ne s'affiche toujours pas
    Le label s'affiche toujours. Les boutons aussi s'affichent toujours, mais pas le text qui est cense etre a l'interieur

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Anonyme1784 Voir le message
    Le label s'affiche toujours. Les boutons aussi s'affichent toujours, mais pas le text qui est cense etre a l'interieur
    Le label ne s'affiche pas car, dans le code que vous avez posté, il est en commentaire.
    Pour le reste, même punition que la discussion précédente: vous sauvez vos lignes dans un script, vous lancez le script en ligne de commande pour éviter les soucis induits par votre "environnement".
    note: il n'y a pas de bonnes raisons pour que les boutons ne s'affichent pas... et si on exécute votre code dans des conditions "normales", il fonctionne.

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

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Merci, je vais essayer dans la console alors...

    Je n'ai pas dit que le label ne s'affichait pas. Je n'ai pas dit non plus que les boutons ne s'affichait pas. J'ai dit que le texte dans le bouton ne s'affiche pas lorsque je décommente le label.

    Citation Envoyé par Anonyme1784 Voir le message
    le texte du bouton ne s'affiche toujours pas
    Le label s'affiche toujours. Les boutons aussi s'affichent toujours, mais pas le text qui est cense etre a l'interieur
    EDIT : la mainloop() de la fenetre tkinter "bloque" la console Python, je peux pas ajouter le label et les boutons pour tester ce que ca donne, comment tester autrement qu'en faisant run le fichier .py ???

    Edit2 : a la base mon code etait avec PACK et ca fonctionnait, j'ai remplace par grid et ca me fait ce bug...

    Edit3 : le probleme vient du sticky='we' car je redimentionne la fenetre pour quelle soit petite, et malheureusement meme avec un width=10 le bouton est super grand et le text du bouton sort de la fenetre ! Comment avoir un equivalent de fill='x' de pack avec grid svp ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 132
    Par défaut
    Bonjour,

    Dans ton programme ton label fait un width de 300, le bouton s'adapte à cette forme.
    Supprime le width du label.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            label=ttk.Label(self, text="test??")
            label.grid(row=0)#Si je l'enleve je vois test et test2

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Anonyme1784 Voir le message
    EDIT : la mainloop() de la fenetre tkinter "bloque" la console Python, je peux pas ajouter le label et les boutons pour tester ce que ca donne, comment tester autrement qu'en faisant run le fichier .py ???
    La console Python ne sert qu'a tester des constructions "simples".
    Au delà, il faut écrire ses instructions dans un script et l'exécuter (et normalement, un bon IDE sait exécuter un script)... Ce qui permet, en repartant de zéro, d'avoir un environnement "propre".

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

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Merci,
    Citation Envoyé par StabiloHB Voir le message
    Bonjour,
    Dans ton programme ton label fait un width de 300, le bouton s'adapte à cette forme.
    Supprime le width du label.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            label=ttk.Label(self, text="test??")
            label.grid(row=0)#Si je l'enleve je vois test et test2
    Euh je comprends pas trop en quoi ca pose probleme vu que ma fenetre fait 300... le bouton devrait etre aussi a 300 comme le label et visible en entier non ? HOPHOPHOP j'ai repondu a ma question en mettant le width a 30, il ne s'agit pas du meme width que celui de la geometry. Comment convertir des pixels en caracteres ? Je veux dire que si j'ai 300 de width fenetre, comment convertir en width de widget ?
    Comment obtenir le comportement de pack fill=x avec grid ?
    EDIT : j'ai trouvé une solution en faisant
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        winMi3.columnconfigure(0, weight=200)
        winMi3.rowconfigure(0, weight=10)

    Citation Envoyé par wiztricks Voir le message
    La console Python ne sert qu'a tester des constructions "simples".
    Au delà, il faut écrire ses instructions dans un script et l'exécuter (et normalement, un bon IDE sait exécuter un script)... Ce qui permet, en repartant de zéro, d'avoir un environnement "propre".
    - W
    Merci mais je ne comprends pas bien, je n'utilise pas la console Python mais uniquement des script .py que j'execute. Parfois on me conseil d'utiliser la console alors je prends mon script et morceau par morceau je le colle dans la console Python mais la les fonctions 'def' me bloquent a cause de l'indent donc je dois declarer ligne par ligne et au delas de ce soucis, le mainloop bloque carrement la console donc je peux pas continuer a coller des trucs pour voir si ca influence la fenetre... m'voyez ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/03/2007, 21h50
  2. [C#] Modifier le text des boutons dans un datagrid
    Par Le-Cortex dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/01/2006, 10h17
  3. couleur des textes des boutons
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/10/2005, 14h59

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