pythonのtkinterで画像を表示したい
解決したいこと
pythonのtkinterで、canvas上に画像を表示させようとしているのですが、classを使ってコードを書くと画像が表示されません。
下の二個目のコードだといけたので、classの使い方に問題があるように思います。
classについてあまり自信がないので、詳しい解説をいただきたいです。
画像が表示されないコード
import tkinter as tk
class test():
def __init__(self, a):
self.frame = tk.Frame()
self.frame.pack()
self.canvas = tk.Canvas(self.frame, width = 500, height = 300)
self.canvas.pack()
self.img = tk.PhotoImage(file = 'Pig.png')
self.canvas.create_image(0, 0, image = self.img)
if __name__ == "__main__":
app = tk.Tk()
test(app)
app.mainloop()
↑エラーは出ず、何もないcanvasだけ表示されます。
このコードだと画像が表示されます
import tkinter as tk
app = tk.Tk()
frame = tk.Frame()
frame.pack()
canvas = tk.Canvas(frame, width = 500, height = 300)
canvas.pack()
img = tk.PhotoImage(file = 'Pig.png')
canvas.create_image(0, 0, image = img)
app.mainloop()
0 likes