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

Contribuez Python Discussion :

[Faq tkinter] Comment connaitre et utiliser les options d'un Widget ?


Sujet :

Contribuez Python

  1. #1
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut [Faq tkinter] Comment connaitre et utiliser les options d'un Widget ?
    Bonjour,

    Suite à une discussion récente du forum pourtant sur la confusion entre attributs et options d'un Widget Tkinter je vous propose de rajouter dans la FAQ ce qui suit.

    ---
    Comment connaître et utiliser les options d'un Widget ?

    dir(widget) ne retourne que la liste des attributs de la classe Python permettant de gérer un Widget, pour connaître la liste des noms des options d'un Widget vous devez utiliser widget.keys().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import Tkinter as Tk
    >>> l = Tk.Label()
    >>> l.keys()
    ['activebackground', 'activeforeground', 'anchor', 'background', 'bd', 'bg', 'bitmap', 'borderwidth', 'compound', 'cursor', 'disabledforeground', 'fg', 'font', 'foreground', 'height', 'highlightbackground', 'highlightcolor', 'highlightthickness', 'image', 'justify', 'padx', 'pady', 'relief', 'state', 'takefocus', 'text', 'textvariable', 'underline', 'width', 'wraplength']
    Pour obtenir sous la forme d'un dictionnaire, ou la clé est le nom de l'option sous la forme d'un string et la valeur celle de l'option, vous devez utilise widget.configure() ou widget.config(), ce qui est strictement la même chose.

    Pour connaître la valeur d'une option utilisez widget.cget('NomDelOption'), widget['NomDelOption'], widget.config('NomDelOption') ou encore widget.configure('NomDelOption').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> l = Tk.Label()
    >>> l['width']
    0
    >>> l.cget('width')
    0
    >>> l.config('width')
    ('width', 'width', 'Width', 0, 0)
    widget.cget('NomDelOption') est la méthode conseillée.

    A noter que Tkinter supporte les erreurs de syntaxe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> l.configure('widt')
    ('width', 'width', 'Width', 0, 10)
    Pour modifier une option vous pouvez utiliser widget['NomDelOption'] = Valeur, widget.config(NomDelOption=Valeur) ou widget.configure(NomDelOption=Valeur).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> l = Tk.Label()
    >>> l.configure(width=10)
    >>> l.config(width=10)
    >>> l['width'] = 10
    widget.config(NomDelOption=Valeur) (et .configure() qui est exactement la même chose) est la méthode conseillée.

    Vous pouvez, bien sur, aussi spécifier l'option lors de la création de l'instance, sous la forme NomDelInstance = ClasseTkinter(Option=Valeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> l = Tk.Label(width=10)
    ---

    Fervents lecteurs du forum vous trouverez sans doute ma proposition puérile mais je pense que cela peux amener le lecteur a comprendre qu'il manipule autre chose que du code Python.
    Pas du tout habitué à ce genre de proposition j’attends avec impatience vos commentaires/critiques.
    Merci d'utiliser le forum pour les questions techniques.

  2. #2
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Je trouve ok. En ajoutant le fait que les methodes avec __getitem__/__setitem__
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l['width'] = 10
    foo = l['width']
    ne sont pas tout a fait fonctionnelles apres le packaging du Widget.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    C'est à dire ?
    Tu conseille de rajouter la notion d'.update() ?

    Edit: .update() est déjà abordé dans la FAQ
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    PauseKawa,

    Ce post m'a bien rendu service.

    Est-il répertorié dans la FAQ ? J'ai cherché et je n'ai pas trouvé. Il faut dire qu'elle est très riche et qu'il faudrait prendre le temps de la lire entièrement.

    Je suis tombé dessus grâce à Google en tapant "widget connaître et modifier attributs" Il est en 10° position mais dans mes recherches je privilégie toujours
    developpez.net

    Merci à vous.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/05/2012, 21h59
  2. [Débutant] [fcm] comment utiliser les options de fcm
    Par claude nguingui dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/11/2011, 14h54
  3. utiliser les options en perl
    Par chti_juanito dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2007, 10h07
  4. utiliser les options régionales
    Par kamikazbe dans le forum NetBeans
    Réponses: 1
    Dernier message: 07/06/2007, 12h59
  5. Utiliser les options qui sont dans ma table
    Par valery17 dans le forum Access
    Réponses: 1
    Dernier message: 21/04/2006, 22h45

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