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 :

Concaténation d'un str pour avoir une adresse de bouton


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Par défaut Concaténation d'un str pour avoir une adresse de bouton
    Bonjour à tous.

    en partant d'une grille 10x10 constituées de boutons :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ligne in range (1,11):
        for colonne in range (1,11):
            mavar ="bouton"+str(ligne)+str(colonne)
            mavar= Button(fenetre, width = 3, heigh = 1,borderwidth=1)
            mavar.grid(row=ligne, column=colonne)
    Chaque bouton est donc défini ainsi : .boutonLigneColonne soit .bouton11 pour le premier en haut à gauche jusqu'à .bouton1010 pour le dernier en bas à droite.

    Je cherche à reconstituer l'adresse d'un bouton dans une fonction de concaténation de ce type, pour en changer le texte d'un bouton pris au hasard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def ChangeText () :
        PosX= randrange(1,11)
        PosY=randrange(1,11)
        mavar = "bouton"+str(PosX)+str(PosY)
        mavar.config(text="X", fg='grey')
    La variable key_value se trouve bien reconstituée d'une valeur de la forme ".bouton1010" comme ci-dessus. Malheureusement, la variable est un string (str) et n'est pas considérée comme l'adresse d'un button.

    J'ai donc logiquement le message d'erreur suivant : AttributeError: 'str' object has no attribute 'config'

    Comment convertir ce string en l'adresse du bouton (qui fait partie de )

    Merci pour votre aide.

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

    Il serait plus simple de stocker vos Button dans un dict plutôt que d'essayer de calculer sur des variables globales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    buttons = {}
    for ligne in range (1,11):
        for colonne in range (1,11):
            w = buttons[colonne, ligne] = Button(fenetre, width = 3, heigh = 1,borderwidth=1)
            w.grid(row=ligne, column=colonne)
    puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        i = randrange(1,11)
        j =randrange(1,11)
        btn = buttons[i, j]
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Par défaut
    Superbe solution !

    Merci beaucoup

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

Discussions similaires

  1. MaskEdit pour saisir une adresse TCP/IP
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/01/2006, 23h04
  2. Concaténation de deux integer pour former une clé primaire
    Par stoukou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/09/2005, 10h34
  3. Réponses: 13
    Dernier message: 03/06/2005, 11h26
  4. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 14h04

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