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 :

TK Inter, comment inserer une variable dans le nom d'une autre variable?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Par défaut TK Inter, comment inserer une variable dans le nom d'une autre variable?
    Bonjour à tout le monde,

    Le titre n'est pas très explicite, mais le problème est tout simple:

    J'ai un code qui ressemble à ça, en python avec TK Inter:

    Image1 = PhotoImage(file = "Boutons/1.gif")
    Image2 = PhotoImage(file = "Boutons/2.gif")
    Image3 = PhotoImage(file = "Boutons/3.gif")
    Image4 = PhotoImage(file = "Boutons/4.gif")
    Image5 = PhotoImage(file = "Boutons/5.gif")
    Image6 = PhotoImage(file = "Boutons/6.gif")
    ...



    J'ai besoin d'une cinquantaine d'images comme ça...
    Évidemment, je voudrait rentrer tout ça dans une boucle, mais je ne sais pas comment faire, pour que le compteur soit intégré dans le nom des variables ("ImagesX" et "Boutons/X").

    Il me faudrait quelque chose du genre:

    for i in range (1,51):
    Image{i} = PhotoImage(file = "Boutons/{i}.gif")


    Je met les accolades en exemple, je ne sais pas comment pourrait être la syntaxe. D'ailleurs il est aussi possible qu'il n'en existe pas et qu'il faille utiliser une autre méthode...


    Bref, je m'en remet à vous, merci pour votre aide et bonne journée.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Si tu les mets dans une liste, tu pourras les retrouver avec leur index.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    images = [] # ou bien [None]
    for i in range(1, 51):
        images.append(PhotoImage(file = "Boutons/%s.gif" % i)
    Si tu as absolument besoin que l'index de l'image soit le même que le nom du fichier .gif alors commence ta liste avec None comme je l'ai mis en commentaire.

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Par défaut
    Merci beaucoup, ça marche sans problème

    Par contre j'ai un autre problème...

    Est-il possible d'utiliser "%s" dans ce cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    button1 = Button(Colonne1, image=Image[1])
    button2 = Button(Colonne2, image=Image[2])
    button3 = Button(Colonne3, image=Image[3])
    button4 = Button(Colonne1, image=Image[4])
    button5 = Button(Colonne2, image=Image[5])
    button6 = Button(Colonne3, image=Image[6])
    il faurdrait que les noms "buttonX" et "ColonneX" soit variables.

    J'ai essayé d'apater ça avec ce que tu m'a donné, ce qui me donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Image=[None]
    button=[None]
    for i in range (1,16):
        Image.append(PhotoImage(file="Boutons/%s.gif" % i))
        button.append(Button(Colonne"%s" % i//3, image=Image[i]))

    Evidemment, la partie Colonne"%s" % i//3, c'est n'importe quoi, puisque ici, Colonne n'est pas une str...

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    boutons=[]
    for i in range(1,6+1) :
       if i%3==1 : boutons.append(Button(Colonne1),Image[i])
       if i%3==2 : boutons.append(Button(Colonne2),Image[i])
       if i%3==0 : boutons.append(Button(Colonne3),Image[i])
       #si on avait beaucoup plus de colonnes, on pourrait tricher :
       colonne=i%3
       if colonne==0 : colonne=3
       exec("boutons.append(Button(Colonne"+str(colonne)+"),Image["+str(i)+"])")

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    En ce moment il y a une épidémie avec le mot clé exec et global, je sais pas d'où ça vient ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> colonnes = ["colonne1", "colonne2", "colonne3"]
    >>> for i in range(1, 16):
    ...     print(colonnes[(i-1)%3])
    ... 
    colonne1
    colonne2
    colonne3
    ...

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    En ce moment il y a une épidémie avec le mot clé exec et global, je sais pas d'où ça vient ?
    Il y a un problème avec exec et global ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2013, 12h01
  2. [EG] Macro variable dans le nom d'une table
    Par asirier dans le forum Outils BI
    Réponses: 2
    Dernier message: 02/07/2013, 15h44
  3. Macro variable dans le nom d'une macro
    Par foxrol dans le forum Macro
    Réponses: 3
    Dernier message: 28/02/2012, 14h23
  4. Réponses: 3
    Dernier message: 29/11/2011, 16h34
  5. [AC-2003] Variables dans le nom d'une image
    Par Tatas dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/10/2009, 20h25

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