2017-07-29 13 views
0

存在しませんできます。 以前のフォーラム回答のコードを盗まれましたが、機能しません。 create_imageラインメッセージで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 

"_tkinter.TclError:画像 "pyimage1が" 存在しない" が生成されます。

私は、この問題に対する答えをたくさん読んだが、それらのすべては、参照すること、または表示順序を変更するにはリフトの使用についてです。 しかし、私はキャンバスの作成を過ぎ去っていません。

どうしたらいいですか?

答えて

0

再度tk.Tk()を呼び出すことによって、あなたのコード内の2つの以上のウィンドウを作ってみましたように見えます。この問題は、すべての変数がデフォルトで最初のルートウィンドウにリンクし、2番目のウィンドウで使用できないということです。

tk.Tk()で呼び出されたメインウィンドウと他のすべてのウィンドウがtk.Toplevelで開始されるように、コードを構造化するのが適切な修正です。プログラムはtk.Tk()を複数回呼び出す必要はありません。

迅速なハック修正が正しいマスターと光画像を提供することです:

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

どうもありがとうございました。私はそれを調べます。 – Garry

関連する問題