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 :
Ce code produit bien le résultat escompté sur un de mes postes sous W10 avec winpython et spyder.
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()
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
.
Partager