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 :

Lister les paramètres d'un widget avec keys


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Professeur de guitare
    Inscrit en
    Mai 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur de guitare

    Informations forums :
    Inscription : Mai 2017
    Messages : 61
    Points : 34
    Points
    34
    Par défaut Lister les paramètres d'un widget avec keys
    Bonjour, je retente de me replonger dans la programmation avec python.

    Je découvre cette "fonction" keys() qui permettrait de lister les paramètres attribuables à un widget . Or je n'y parviens toujours pas:

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
     
     
    from tkinter import *
    tk=Tk()
    canvas=Canvas(tk, width=200, height=200)
    b=Button(tk, text=' clique ici')
     
     
    b.pack(pady=50)
    canvas.pack()
    canvas.mainloop()
     
    b.keys()


    Ou encore un exemple issue de ce forum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
     
    import tkinter as Tk
    l = Tk.Label()
    l.keys()
    Pouvez vous m'éclairer sur cette utilisation .

    Merci

    Nico

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Professeur de guitare
    Inscrit en
    Mai 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur de guitare

    Informations forums :
    Inscription : Mai 2017
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    J'ai résolu en incluant b.keys() dans la loop principale et en le "mettant " dans print : print ( b.keys())

    Mais comment obtenir de l'aide ensuite sur un paramètre. Exemple le paramètre" repeatdelay"

    help ( b.repeatdelay)
    help (repeatdelay)
    print (help (repeatdelay))
    print (help(b.repeatdelay) ???????

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par calixtus06 Voir le message
    Mais comment obtenir de l'aide ensuite sur un paramètre. Exemple le paramètre" repeatdelay"
    Pour savoir ce que vous pouvez faire de repeatdelay, il faut ouvrir une documentation qui décrit le widget correspondant, par exemple Button.

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

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Professeur de guitare
    Inscrit en
    Mai 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur de guitare

    Informations forums :
    Inscription : Mai 2017
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    Bonjour, ma question portait sur la possiblité ou non d'obtenir de l'aide depuis l'IDE . Dir() et key() apporte cette aide en partie. Je voulais savoir s'il y avait moyen d'obtenir la liste des paramètres de la même façon.
    Merci pour le lien que je connaissais ( probablement le mieux fait) . C'est depuis ce lien que je pose la question justement:


    http://tkinter.fdex.eu/presentation/#/1/6

    mais leur explication n' aboutissait à rien si je n'utilisais pas print()

    Là je souhaiterais savoir par exemple si depuis l'IDE je peux obtenir la liste des paramètres utilisables pour canvas.create_oval (val1, val2 etc )

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par calixtus06 Voir le message
    Là je souhaiterais savoir par exemple si depuis l'IDE je peux obtenir la liste des paramètres utilisables pour canvas.create_oval (val1, val2 etc )
    La documentation qu'affiche un IDE ou le help est écrite dans les sources du code. tkinter est juste une passerelle qui permet au programmeurs Python d'utiliser TCL/Tk (une bibliothèque essentiellement écrite en C mais pour le programmeur TCL).
    Dans ce cas là, la documentation originale est la première source de documentation et on ne va pas la ré-écrire dans le code car çà va être galère à maintenir. Comparez la documentation TCL/Tk au contenu de celle que vous utilisez, il y a un gap et de nombreuses omissions.

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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Professeur de guitare
    Inscrit en
    Mai 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur de guitare

    Informations forums :
    Inscription : Mai 2017
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok , si j'ai bien compris il faut chercher la doc sur internet ?

    Justement je cherche à déplacer le widget b, objet de la classe Button() et j'ai beau tourner la doc dans tous les sens ...je ne parviens à rien:

    La doc pour déplacer le widget:

    http://tkinter.fdex.eu/doc/gp.html

    Ma façon de l'appliquer et tentant de vaguement comprendre ...

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    from tkinter import *
    #print(dir(tkinter))
    # help(tkinter.Canvas)
     
     
    tk=Tk() 
    tk.title('Jeu du Baccalauréat')
     
     
    rond=Canvas(tk, width=500, height=500) 
    rond.create_oval(100,100,400,400,fill='yellow',outline='red', width= '5')  
    rond.create_text(250,250, text="Jouons au Baccalauréat", font=('Times', 20))
     
     
     
    b=Button(tk, text=' clique ici', height='5')
    b.pack(pady= 20)
    b.grid( column=1, row= 2)
     
     
    rond.pack()
    rond.mainloop()
     
    b.keys()
    J'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "liste des classes et des fonctions.py", line 26, in <module>
        rond.pack()
      File "/usr/lib/python3.5/tkinter/__init__.py", line 2003, in pack_configure
        + self._options(cnf, kw))
    _tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by grid
    Il n'y a donc aucun moyen depuis l'IDE de connaître les paramètres possibles à b.grid() pour éviter ces erreurs ?

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Relisez le message d'erreur il vous dit que vous ne pouvez pas afficher vos widgets avec grid et pack simultanément dans une même fenêtre.

    Ce qui est normal puisque ce sont des gestionnaires de placement de vos widgets à qui vous demandez de placer vos widgets en fonction de l'espace libre suivant une certaine disposition.

    Après pour trouver les paramètres à passer à "grid" ou à "pack", la documentation est incontournable.

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

Discussions similaires

  1. Connaitre par une requête les paramètres d'une fonction
    Par katoyi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/05/2008, 20h00
  2. Réponses: 2
    Dernier message: 29/08/2007, 19h43
  3. Réponses: 11
    Dernier message: 06/09/2006, 12h48
  4. [PHP 4.4.2] Récupérer les paramètres d'une fonction
    Par stailer dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2006, 21h41
  5. [VBA-E] Lister les arguments d'une fonction
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2006, 12h04

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