0
我想在畫布上放置「主」圖像的副本,我從tk.Listbox中選擇哪個名稱。完整的程序代碼是如此之大,所以我把這個部分。畫布上的tkinter圖像消失
from PIL import Image, ImageTk
import Tkinter as tk
import dircache
import copy
def callback(event):
label.master_image=ImageTk.PhotoImage(Image.open(path))
label.configure(image=label.master_image)
def apply():
canvas.copy_image=copy.copy(label.master_image)
canvas.create_image(10,10,canvas.copy_image)
root=tk.Tk()
frame=tk.Frame(master=root)
canvas=tk.Canvas(master=frame)
listbox=tk.Listbox(master=frame)
listbox.insert(tk.END, *dircache.listdir('./images'))
listbox.bind('<ButtonRelease-1>', callback)
label=tk.Label(master=frame)
button=tk.Button(master=frame, text='Apply', command=apply)
canvas.pack()
frame.pack()
listbox.pack()
label.pack()
button.pack()
root.mainloop()
但是,當我只需要點擊另一個菜單點(而不是在「應用」按鈕),這意味着label.master_image
變化,在畫布上的圖像消失。
P.S. label.master_image
用於在對畫布應用更改之前在標籤上進行預覽。
帶或不帶copy.copy我的版本的代碼不能正常工作 – EgorPuzyrev
你試試我的代碼? – falsetru
是的,謝謝,它的工作原理,但我沒有看到他們之間的這種全球性差異。 – EgorPuzyrev