2017-07-29 25 views
0

我正在嘗試將圖像添加到畫布。 我從以前的論壇答案竊取了代碼,並且它不工作。ImageTk.PhotoImage給出不存在消息

img = Image.open(filename) 
    self.currentImage['data'] = img 

    photo = ImageTk.PhotoImage(img) 
    label = tk.Label(image=photo) 
    label.image = photo 

    self.c.xview_moveto(0) 
    self.c.yview_moveto(0) 
    self.c.create_image(0, 0, image=photo, anchor='nw', tags='img') 
    self.c.config(scrollregion=self.c.bbox('all')) 
    self.currentImage['photo'] = photo 

在create_image行產生消息「_tkinter.TclError:image」pyimage1「不存在」。

我讀過很多關於這個問題的答案,但所有這些都是關於做參考,或者使用lift來改變顯示順序。 但是我甚至沒有超越畫布的創作。

我錯過了什麼?

回答

0

看起來你試圖通過再次調用tk.Tk()在代碼中創建2個或更多的窗口。問題在於,所有變量默認鏈接到第一個根窗口,並且不可用於第二個窗口。

正確的解決方法是構造代碼,以便您有一個主窗口,調用tk.Tk(),其他所有窗口應該以tk.Toplevel開始。沒有任何程序應該多次調用tk.Tk()

快速哈克的解決辦法是提供正確的掌握光象:非常

photo = ImageTk.PhotoImage(img, master=self.c) 
+0

感謝。我會研究一下。 – Garry