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 :

boucler sur widget OptionMenu


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut boucler sur widget OptionMenu
    Bonjour à tous,

    Je suis confronté à un problème Tkinter : je fais un boucle sur un widget à choix multiples (optionmenu) et je n'arrive pas à incrémenter la variable associée au widget (mat_p dans l'exemple ci-dessous).
    J'aimerai créer n variables (avec n le nombre de boucles) de la manière suivante : mat_p_n.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     mat_p_input = OptionMenu(p_assemblees, mat_p, "1S", "3S", "8S")
     mat_p_input.grid(row=counter + 2, column=3)
    Vous trouverez en PJ mon code.
    On voit bien que la variable mat_p est partagée par les différents widgets créés.
    Comment faire pour différencier les variables affectées ??

    Merci d'avance pour vos réponses


    NB : j'ai bien peur d'arriver à mes limites sur python/tkinter et devoir me farcir la programmation en class
    Fichiers attachés Fichiers attachés

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

    Citation Envoyé par Infra_Red Voir le message
    J'aimerai créer n variables (avec n le nombre de boucles) de la manière suivante : mat_p_n.
    C'est a çà que servent les listes non?

    NB : j'ai bien peur d'arriver à mes limites sur python/tkinter et devoir me farcir la programmation en class
    Si lorsque vous envisagez mat_p_0, mat_p_1, .... mat_p_n vous ne pensez pas à collection, séquence,... c'est que vous ne savez pas encore penser votre code en différentes structures de données.
    La POO vous permettra d'écrire votre code différemment mais ne vous aidera pas à "penser" votre code: vous aurez d'autres joujous pour ranger (et s'il n'y a rien à ranger...)

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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    Merci de ta réponse

    Citation Envoyé par wiztricks Voir le message
    C'est a çà que servent les listes non?
    j'ai bien créé une liste pour ranger mes différentes variables, je parle seulement de la définition du widget.
    Quand on joue avec le bout de code, on voit bien que la liste matériau se met à jour pour tout les widgets définis, alors que moi je voudrais différencier mes widgets OptionMenu

    Citation Envoyé par wiztricks Voir le message
    Si lorsque vous envisagez mat_p_0, mat_p_1, .... mat_p_n vous ne pensez pas à collection, séquence,... c'est que vous ne savez pas encore penser votre code en différentes structures de données.
    La POO vous permettra d'écrire votre code différemment mais ne vous aidera pas à "penser" votre code: vous aurez d'autres joujous pour ranger (et s'il n'y a rien à ranger...)
    oui il faut que je me penche dessus, mais je n'arrive pas encore "penser" POO et voir les avantages de ce paradigme.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par Infra_Red Voir le message
    Quand on joue avec le bout de code, on voit bien que la liste matériau se met à jour pour tout les widgets définis, alors que moi je voudrais différencier mes widgets OptionMenu
    mat_p est un StringVar i.e. une Variable TCL/Tk.
    Et vous pouvez associer la même Variable TCL/Tk à différents widgets justement pour qu'ils soient mis à jour automatiquement. Donc si vous n'associez pas à vos différents OptionMenu une StringVar spécifique, çà ne peut pas marcher.

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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    le souci est que je n'ai jamais le même nombre de pièces, donc je ne connais pas le nombre de variables mat_p à définir!!!

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par Infra_Red Voir le message
    le souci est que je n'ai jamais le même nombre de pièces, donc je ne connais pas le nombre de variables mat_p à définir!!!
    C'est pour çà qu'il y a des listes... auxquelles on peut ajouter un ou plusieurs éléments à la fois sans se préoccuper, au départ, du nombre d'objets à y stocker.
    Il y a plein de tutos. qui expliquent comment fonctionnent les listes et ce qu'on peut faire avec.

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

  7. #7
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Je suis débutant en Python et j'ai parcouru votre code en diagonale, j'y ai vu un gros problème : mat_pieces = StringVar() et plus bas dans le code : mat_pieces = [] !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19
  2. [Excel VBA] Boucler sur un userform
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 01h57
  3. Boucler sur des champs texte
    Par syl2095 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/11/2004, 16h15
  4. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 16h29

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