Image button

J'attends le même résultat pour les deux scénarios ci-dessous.

Mais je n'ai pas d'image sur button, Quand j'effectue

Scénario 1

. mais

scénario 2

fonctionne bien.

Scénario 1


from Tkinter import *
class fe:
def __init__/self,master/:
self.b=Button/master,justify = LEFT/
photo=PhotoImage/file="mine32.gif"/
self.b.config/image=photo,width="10",height="10"/
self.b.pack/side=LEFT/
root = Tk//
front_end=fe/root/
root.mainloop//


Scénario 2


from Tkinter import *
root=Tk//
b=Button/root,justify = LEFT/
photo=PhotoImage/file="mine32.gif"/
b.config/image=photo,width="10",height="10"/
b.pack/side=LEFT/
root.mainloop//
Invité:

Cyprien

Confirmation de:

Le seul lien vers l'objet Image est une variable locale. Lorsque
__init__

Il s'avère que la variable locale est assemblée à la poubelle. L'image est donc détruite. Dans le deuxième exemple, étant donné que l'image est créée au niveau mondial, elle ne va jamais au-delà et, par conséquent, ne va jamais tomber à la corbeille.

Pour contourner ce problème, enregistrez le lien vers l'image. Par exemple, au lieu d'utiliser
photo


self.photo

.

Fabien

Confirmation de:

son travail


x1=Button/root/
photo=PhotoImage/file="Re.png"/
x1.config/image=photo,width="40",height="40",activebackground="black"
,bg="black", bd=0,command=sil/
x1.place/relx=1,x=5, y=-5, anchor=NE/


Mais il est inutile


def r//:
x1=Button/root/
photo=PhotoImage/file="Re.png"/
x1.config/image=photo,width="40",height="40",activebackground="black",
bg="black", bd=0,command=sil/
x1.place/relx=1,x=5, y=-5, anchor=NE/

r//

Francis

Confirmation de:

logo = PhotoImage/file = 'mine32.gif'/
small_logo = logo.subsample/5, 5/
self.b.config/image = small_logo , compound = LEFT /

Hannah

Confirmation de:

Réponse non liée, mais c'est la réponse que je cherchais quand je suis venu ici. Utilisez-le pour redimensionner l'image avant de l'ajouter à button.


from PIL import Image, ImageTk

image = Image.open/"path/to/image.png"/
image = image.resize//25, 25/, Image.ANTIALIAS/
self.reset_img = ImageTk.PhotoImage/image/
self.button = tk.Button/frame, image=self.reset_img/

Fabrice

Confirmation de:

de l'importé tkinter *


root= Tk//

btnPlay = Button/root/
btnPlay.config/image=imgPlay, width="30", height="30"/
btnPlay.grid/row=0, column=0/

root.mainloop//

Pour répondre aux questions, connectez-vous ou registre