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 :

[PhotoImage] Erreur Tkinter Image : "Error: image "pyimage3" doesn't exist" [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Par défaut [PhotoImage] Erreur Tkinter Image : "Error: image "pyimage3" doesn't exist"
    [numpy][PhotoImage][random][Button]

    Bonjour,

    Je suis novice et j'ai fais ce code avec ChatGPT.
    Objectif afficher "aléatoirement" 4 image parmi 6
    et ensuite entrer 1 nombres dans le champ tkinter.
    Ce nombre me sera utile dans le Gros code.
    Le petit code fonctionne très bien seul.

    Problème, quand je l'ajoute à mon code principale, pour une raison inconnu j'obtiens une erreur et GPT n'arrive plus à m'aider.
    Je pense l'avoir mal intégrer mais je ne suis sur de rien.
    Je crois que c'est un problème assez connu à propos des images.

    Je met en pièce jointes le petit code qui marche seul et le gros code qui ne marche pas, ainsi que les images pour tester.
    #
    #
    #
    Dans le gros code j'ai encadrer la partie ou j'ai ajoutée le petit code par des mur de hashtag
    #
    #
    #

    Dans le Gros code

    Voici le message d'erreur et en dessous le petit code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      File "C:\Users\****\Desktop\Code UEO - Copie.py", line 380, in fonction_1
        fenetre_shop()
      File "C:\Users\****\Desktop\Code UEO - Copie.py", line 353, in fenetre_shop
        bouton = tk.Button(fenetre, image=image, command=lambda: None)  # Pas besoin de commande pour les boutons d'images
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\****\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2726, in __init__
        Widget.__init__(self, master, 'button', cnf, kw)
      File "C:\Users\****\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2648, in __init__
        self.tk.call(
    _tkinter.TclError: image "pyimage3" doesn't exist
    Petit code :
    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
    58
     import tkinter as tk
     
    # Vérification de la permutation
    def verifier_permutation(choix_vet):
        return len(choix_vet) == 4 and all(c.isdigit() and 1 <= int(c) <= 4 for c in choix_vet)
     
    # Fonction à appeler lors du clic sur le bouton "Valider"
    def validation_ok():
        contenu = champ_texte.get()  # Obtenir le contenu du champ de texte
        if verifier_permutation(contenu):
            global choix_vet
            choix_vet = contenu  # Stocker le contenu dans la variable choix_vet
            fenetre.destroy()  # Fermer la fenêtre
        else:
            print("Veuillez entrer une permutation valide des indices des vecteurs (chiffres de 1 à 4).")
     
    # Création de la fenêtre principale
    fenetre = tk.Tk()
    fenetre.geometry("1920x1080")  # Définition de la taille de la fenêtre
     
    # Vecteur contenant les chemins des images disponibles
    all_image_paths = ["1.png", "2.png", "3.png", "4.png", "5.png", "6.png"]
     
    # Vecteur de 4 chiffres pour sélectionner les images
    selection_indices = [0, 2, 4, 5]  # Ces indices correspondent aux images choisies parmi toutes les images disponibles
     
    # Liste pour stocker les images des boutons
    images = []
     
    # Chargement des images et stockage dans la liste 'images'
    for index in selection_indices:
        image_path = all_image_paths[index]
        image = tk.PhotoImage(file=image_path)
        images.append(image)
     
    # Création des boutons avec les images sélectionnées
    boutons = []
    for i, image in enumerate(images):
        bouton = tk.Button(fenetre, image=image, command=lambda: None)  # Pas besoin de commande pour les boutons d'images
        bouton.grid(row=0, column=i, padx=10, pady=10)
        boutons.append(bouton)
     
    # Création du champ de texte
    champ_texte = tk.Entry(fenetre)
    champ_texte.grid(row=1, column=0, columnspan=4, pady=10)
     
    # Création du bouton "Valider"
    bouton_valider = tk.Button(fenetre, text="Valider", command=validation_ok)
    bouton_valider.grid(row=2, column=0, columnspan=4, pady=5)
     
    # Centrage des boutons horizontalement
    fenetre.grid_columnconfigure((0, 1, 2, 3), weight=1)
     
    # Centrage des boutons verticalement
    fenetre.grid_rowconfigure(0, weight=1)
     
    # Lancement de la boucle principale
    fenetre.mainloop()
    Fichiers attachés Fichiers attachés

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

    nouvelle_fenetre est une instance de tk.Tk. Remplacez le par tk.Toplevel() ça devrait marcher.
    Pour les détails, la documentation et la FAQ sont là pour ça.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Par défaut
    Merci, c'était si simple.

    J'ai ajouté un tk.Toplevel() un par un à toutes les fenêtre jusqu'à trouvé la bonne.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 690
    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 690
    Par défaut
    Citation Envoyé par Gaulave Voir le message
    J'ai ajouté un tk.Toplevel() un par un à toutes les fenêtre jusqu'à trouvé la bonne.
    A force de sous traiter le travail de réflexions à des ChatGPT, on se retrouve réduit à faire des taches répétitive sans trop comprendre. Un choix a aussi des conséquences pas toujours très top...

    - 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. [VB.Net]Erreur supression image
    Par kahya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/11/2006, 20h11
  2. [Tkinter]Image dans un Canvas
    Par Slade991 dans le forum Tkinter
    Réponses: 2
    Dernier message: 10/06/2006, 14h42
  3. [Tkinter] image dans une fenetre
    Par THE_VIP dans le forum Tkinter
    Réponses: 3
    Dernier message: 13/05/2006, 08h38
  4. [Tkinter] image dans un Frame
    Par THE_VIP dans le forum Tkinter
    Réponses: 7
    Dernier message: 26/04/2006, 14h01
  5. Erreur redimension image
    Par carter15_2001 dans le forum Langage
    Réponses: 10
    Dernier message: 27/01/2006, 21h38

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