Bonjour à tous,

Je me mets à l'étude approfondie de tkinter.
J'essaye de faire un bouton avec une image intégrée avec le code ci-dessous tiré d'un livre :
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
 
import tkinter as tk
 
RELIEFS = [tk.SUNKEN, tk.RAISED, tk.GROOVE, tk.RIDGE, tk.FLAT]
 
class ButtonsApp(tk.Tk):
    def __init__(self):
        super().__init__()
        self.img = tk.PhotoImage(file="python.gif")
        self.btn = tk.Button(self, text="Button with image",
                             image=self.img, compound=tk.LEFT,
                             command=self.disable_btn)
        self.btns = [self.create_btn(r) for r in RELIEFS]        
        self.btn.pack()
        for btn in self.btns:
            btn.pack(padx=10, pady=10, side=tk.LEFT)
 
    def create_btn(self, relief):
        return tk.Button(self, text=relief, relief=relief)
 
    def disable_btn(self):
        self.btn.config(state=tk.DISABLED)
 
if __name__ == "__main__":
    app = ButtonsApp()
    app.mainloop()
Ce code produit bien le résultat escompté sur un de mes postes sous W10 avec winpython et spyder.

Je souhaite le faire fonctionner sur un poste plus ancien en python 3.4 avec Pyzo et là le message d'erreur _tkinter.TclError: image "pyimage7" doesn't exist
bloque le processus, une solution à mettre en œuvre est d'utiliser Toplevel().

Mais là je ne vois pas du tout où mettre cette commande dans le code ci dessus.

Par avance merci pour votre aide.

P.G
.