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 :

Mon image ne s'affiche pas sur un bouton


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut Mon image ne s'affiche pas sur un bouton
    Bonsoir je reviens sur ce forum parce que je suis de nouveau bloqué dans mon tipe.
    Je tente ici d'afficher une image sur mes boutons, mais l'image ne s'affiche pas et je reçois une erreur me disant que l'image n'existe 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    class Fen_jeu(tk.Tk):
     
        def __init__(self, taille):
            super().__init__()
     
            # infos sur la partie
            self.couleur_tour = -1
            self.groupes = []
            self.goban = np.zeros((taille, taille))
            self.tab_boutons = [[0 for k in range(taille)] for k in range(taille)]
            self.boutons = []
            self.pions_captures_N = 0
            self.pions_captures_B = 0
     
            # images
            self.pion_blanc = tk.PhotoImage(file="images\pion blanc.png")
            self.pion_noir = tk.PhotoImage(file="images\pion noir.png")
            self.goban19 = tk.PhotoImage(file="images\goban19.png")
            self.goban9 = tk.PhotoImage(file="images\goban9.png")
     
            # infos de la fenêtre
            self.title("Jeu de Go")
            self.creer_barre_menu()
     
            # creation widgets
            self.zone_grille = ttk.Frame(self)
            self.zone_point = ttk.Frame(self)
            self.zone_point.pack()
            self.zone_grille.pack()
            self.creer_zone_grille(taille)
            self.creer_zone_point()
     
        def creer_zone_grille(self, n):
            for i in range(n):
                for j in range(n):
                    b = ttk.Button(self.zone_grille, text=str(i) + "," + str(j), command=lambda k=i, l=j: self.tour_de_jeu((k, l)))
                    self.tab_boutons[i][j]= b
                    b.grid(row=i, column=j)
     
           def rafraichir(self):
            nouveau = np.zeros_like(self.goban)
            # met la valeur de la couleur du groupe pour les positions du groupe
            for g in self.groupes:
                for pos in g.positions:
                    nouveau[pos[0], pos[1]] = g.couleur
            self.goban = nouveau
            # met les pions sur le plateau
            self.pion_blanc = tk.PhotoImage(file="images\pion blanc.png")
            self.pion_noir = tk.PhotoImage(file="images\pion noir.png")
            (n,k)= np.shape(self.goban)
            for i in range(n):
                for j in range (n):
                    if self.goban[i,j] == -1:
                        self.tab_boutons[i][j]['image'] = self.pion_noir
                    elif self.goban[i,j] == 1:
                        self.tab_boutons[i][j]['image'] = self.pion_blanc
    La fonction tour de jeu appelée par les boutons appelle la fonction rafraichir que j'ai jointe.
    J'ai fait attention à bien référencer mes images donc je ne comprends pas où j'ai pu me tromper.
    je vais continuer mes recherches mais un peu d'aide serait la bienvenue.
    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Arrake Voir le message
    La fonction tour de jeu appelée par les boutons appelle la fonction rafraichir que j'ai jointe.
    J'ai fait attention à bien référencer mes images donc je ne comprends pas où j'ai pu me tromper.
    Techniquement, l'image est assignée sous des conditions qui ne sont peut être pas réalisées.

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

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Techniquement, l'image est assignée sous des conditions qui ne sont peut être pas réalisées.

    - W
    Effectivement, mais quand je réalise l'action, j'ai un message d'erreur m'indiquant que mon image n'existe pas, d'où mon problème.
    J'aurais du mieux préciser ma question. Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Arrake Voir le message
    j'ai un message d'erreur m'indiquant que mon image n'existe pas, d'où mon problème.
    J'aurais du mieux préciser ma question
    Quand on rencontre un problème, le message d'erreur est quand même le point de départ pour essayer de comprendre ce qu'il se passe. Et si vous ne le postez pas on ne va pas le deviner sauf à poster un code complet qui permette de reproduire ce que vous constatez.

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

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Voilà le message d'erreur:

    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Users\grego\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
    return self.func(*args)
    File "C:\Users\grego\PycharmProjects\TIPEgo\graph.py", line 54, in <lambda>
    b = ttk.Button(self.zone_grille,command=lambda k=i, l=j: self.tour_de_jeu((k, l)))
    File "C:\Users\grego\PycharmProjects\TIPEgo\graph.py", line 120, in tour_de_jeu
    self.rafraichir()
    File "C:\Users\grego\PycharmProjects\TIPEgo\graph.py", line 82, in rafraichir
    self.tab_boutons[i][j]['image'] = self.pion_noir
    self.configure({key: value})
    File "C:\Users\grego\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1646, in configure
    File "C:\Users\grego\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1657, in __setitem__
    return self._configure('configure', cnf, kw)
    File "C:\Users\grego\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1636, in _configure
    self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
    _tkinter.TclError: image "pyimage6" doesn't exist

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

    La plupart du temps ce message d'erreur indique que vous avez instancié plusieurs Tk.
    pyimage6 est la variable TCL qui a été associée à l'image. Chaque instance de Tk définit des espaces de noms (TCL) différents. Et l'espace de nom par défaut ne va pas toujours tomber juste.

    Pour forcer l'instance de Tk à utiliser: tk.PhotoImage(file="images\pion blanc.png", master=self) devrait suffire.

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

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

    La plupart du temps ce message d'erreur indique que vous avez instancié plusieurs Tk.
    pyimage6 est la variable TCL qui a été associée à l'image. Chaque instance de Tk définit des espaces de noms (TCL) différents. Et l'espace de nom par défaut ne va pas toujours tomber juste.

    Pour forcer l'instance de Tk à utiliser: tk.PhotoImage(file="images\pion blanc.png", master=self) devrait suffire.

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

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

Discussions similaires

  1. pourquoi mon image ne s'affiche pas sur IE
    Par Ercan67000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/06/2011, 12h31
  2. image ne s'affiche pas sur IE à cause du height et width
    Par akara dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 15/11/2010, 15h29
  3. quelques images ne s'affichent pas sur Free
    Par ikhor dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 05/10/2010, 14h13
  4. Réponses: 6
    Dernier message: 07/04/2010, 11h22
  5. mon image ne s'affiche pas
    Par vinc_dev_fr dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/05/2007, 21h08

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