_tkinter.TclError: image "pyimage2" doesn't exist"
Bonjour, je cherche à créer une classe pour améliorer mon programme, j'apprend donc à travers plusieurs tutoriels que j'essaye d'adapter sur mon programme mais pas facile car je travaille avec tkinter !! Je ne comprend pas j'ai créer une classe mère et une classe fille, mais mon programme ne fonctionne pas. Mes fenêtres s'ouvrent mais lorsque je clique sur play pour ouvrir la fenêtre de jeu, l'image ne s'affiche pas, la fenêtre est blanche. Voici le message d'erreur " *(args + self._options(cnf, kw))))
_tkinter.TclError: image "pyimage2" doesn't exist"
Code:
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 59
| import tkinter as tk
import os
from PIL import Image, ImageTk
#Chemin pour les images
script_dir = os.path.dirname(__file__)
rel_path = "/images/"
abs_file_path = script_dir + rel_path
#Fenêtre instructions
def FenetreInstructions():
fenetreinstructions=tk.Tk()
titre2=tk.Label(fenetreinstructions, text="INSTRUCTIONS AU JEU")
titre2.pack()
fenetreinstructions()
#Création de la fenêtre d'introduction
class FenetreIntro(tk.Frame):
def __init__(self):
self.fenetreintro = tk.Tk()
self.label = tk.Label(self.fenetreintro, text="Wanted")
self.label.pack()
self.canvas=tk.Canvas(self.fenetreintro, width=800, height=500, background='white')
self.canvas.pack()
self.photo = Image.open(abs_file_path+"wanted.jpeg")
self.photowanted = ImageTk.PhotoImage(self.photo)
self.wanted=self.canvas.create_image(400, 200, image=self.photowanted)
self.bouton1=tk.Button(self.fenetreintro, text="PLAY", command=FenetreJeu)
self.bouton1.pack()
self.bouton2=tk.Button(self.fenetreintro, text="Instructions", command=FenetreInstructions)
self.bouton2.pack()
self.bouton3=tk.Button(self.fenetreintro, text="Quitter", command=self.fenetreintro.destroy)
self.bouton3.pack()
self.fenetreintro.mainloop()
#Fenêtre jeu
class FenetreJeu(FenetreIntro):
def __init__(self):
tk.Frame.__init__(self)
self.fenetrejeu = tk.Tk()
self.titre1 = tk.Label(self.fenetrejeu, text="Wanted-Jeu")
self.titre1.pack()
self.Minuteur=tk.Label(self.fenetrejeu,text="60")
self.Minuteur.pack()
self.canvasjeu=tk.Canvas(self.fenetrejeu, width=800, height=800, background='white')
self.canvasjeu.pack()
self.image = Image.open(abs_file_path+"clarys2.png")
self.photoclarys2 = ImageTk.PhotoImage(self.image)
self.canvasjeu.create_image(500,150, image=self.photoclarys2)
self.fenetrejeu.mainloop()
f = FenetreIntro() |