tkinterラベルに画像をロードし、その画像がそのラベルで表示されます。ボタンを押すとその画像を変更する必要があります。ボタンを押すと古い画像が消えますが、新しい画像が表示されていない 私のコードはdef change_pic(labelname)
でTkinterボタンを押しても画像が変化しない
import Tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
def change_pic(labelname):
photo1 = ImageTk.PhotoImage(Image.open("demo.jpg"))
labelname.configure(image=photo1)
print "updated"
vlabel=tk.Label(root)
photo = ImageTk.PhotoImage(Image.open('cardframe.jpg'))
vlabel.configure(image=photo)
vlabel.pack()
b2=tk.Button(root,text="Capture",command=lambda:change_pic(vlabel))
b2.pack()
root.mainloop()
PILはTkinterのの光画像と同じである場合、私は知りません。 Pythonでは、ガベージコレクションがあり、時にはそれがしたいことをしません。イメージを別のインスタンスとして取得してクラスに適用する必要がある場合、Pythonはイメージインスタンスを収集します。 'image = Image.open(" demo.jpg ")'と 'photo = PhotoImage(image)'が一緒に動くかもしれません。 –
@PrestonHagerは試しましたが動作しません – user6745741