Bonsoir,
je suis actuellement en Terminale S et pour mon projet de fin d'année, je travaille sur Tkinter.
Je suis donc en train de suivre le cours d'apprentissage présent sur ce site : http://python.developpez.com/cours/T...age=page_10#L8
J'en suis au chapitre 8.5, à l'image d'oiseau
Donc je copie/colle le code suivant :
Puis je remplace le nom d'image "Martin_P" par une image .gif qui se trouve dans le même répertoire que mon programme.
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 from Tkinter import * fen1 = Tk() # création de widgets 'Label' et 'Entry' : txt1 = Label(fen1, text ='Premier champ :') txt2 = Label(fen1, text ='Second :') txt3 = Label(fen1, text ='Troisième :') entr1 = Entry(fen1) entr2 = Entry(fen1) entr3 = Entry(fen1) # création d'un widget 'Canvas' contenant une image bitmap : can1 = Canvas(fen1, width =160, height =160, bg ='white') photo = PhotoImage(file ='Martin_P.gif') item = can1.create_image(80, 80, image =photo) # Mise en page à l'aide de la méthode 'grid' : txt1.grid(row =1, sticky =E) txt2.grid(row =2, sticky =E) txt3.grid(row =3, sticky =E) entr1.grid(row =1, column =2) entr2.grid(row =2, column =2) entr3.grid(row =3, column =2) can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5) # démarrage : fen1.mainloop()
j’obtiens donc le code suivant :
Mais quand je le lance (pas trop loin bien sur) Pyscripter m'affiche :
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 def main(): pass if __name__ == '__main__': from Tkinter import * fen1 = Tk() # cr?ation de widgets 'Label' et 'Entry' : txt1 = Label(fen1, text ='Premier champ :') txt2 = Label(fen1, text ='Second :') txt3 = Label(fen1, text ='Troisi?me :') entr1 = Entry(fen1) entr2 = Entry(fen1) entr3 = Entry(fen1) # cr?ation d'un widget 'Canvas' contenant une image bitmap : can1 = Canvas(fen1, width =160, height =160, bg ='white') photo = PhotoImage(file ='diable.gif') item = can1.create_image(80, 80, image =photo) # Mise en page ? l'aide de la m?thode 'grid' : txt1.grid(row =1, sticky =E) txt2.grid(row =2, sticky =E) txt3.grid(row =3, sticky =E) entr1.grid(row =1, column =2) entr2.grid(row =2, column =2) entr3.grid(row =3, column =2) can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5) # d?marrage : fen1.mainloop() main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Traceback (most recent call last): File "<string>", line 254, in run_nodebug File "C:\python\[ISN]Projet bac\Insertion image.py", line 35, in <module> item = can1.create_image(80, 80, image =photo) File "C:\Python27\Lib\lib-tk\Tkinter.py", line 2198, in create_image return self._create('image', args, kw) File "C:\Python27\Lib\lib-tk\Tkinter.py", line 2189, in _create *(args + self._options(cnf, kw)))) _tkinter.TclError: image "pyimage11" doesn't exist
Je pense que le problème vient de mon image (c'est même sur ^^) mais je ne vois pas du tout où.
j'ai fouillé la fac et le forum mais je n'ai rien trouvé qui pourrait m'aider.
Merci d'avance.
Partager