pythonでTkinterを使った際、画像が表示されず、canvasの背景のみ表示された。
原因
canvasのメソッドcreate_imageは次の処理が始まる直前に描画される。そのため、以前では画像が表示されていたのに、最後の処理だけ行われないならこの記事で解決できるだろう。
失敗コード(関係ないとこは省略)
window=tkinter.Tk()
・・・#いろんなコード。imgを参照したりtkinterをimportしたり
canvas = tk.Canvas()
canvas.create_image(image=img)
・・・#またいろいろ
canvas.pack()
#終了
imgが出力されず、背景だけ出力される
正しいコード
window=tkinter.Tk()
・・・#いろんなコード。imgを参照したりtkinterをimportしたり
canvas = tk.Canvas()
canvas.create_image(image=img)
・・・#またいろいろ
canvas.pack()
window.mainloop()
#終了
window.mainloop()はwindowを開け続け、次の処理を待つメソッド。これを最後に追加することで直前のcreate_imageが処理される。