无法在Tkinter中显示图像

时间:2019-10-23 04:14:33

标签: python image tkinter tkinter-canvas

我正在尝试将图像显示在tkinter画布中。

我知道Canvas适用于形状和文本,但是图像不起作用。

我正在使用PIL ImageTK.PhotoImage,但是使用'.ppm'图像创建Tkinter.PhotoImage也不起作用。

'png'图像与python文件存储在同一目录中。

import tkinter as tk
from PIL import Image, ImageTk


class Window:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title("COMP")
        self.window.geometry("1200x600")

        topframe = tk.Frame(self.window, highlightbackground='black', highlightthickness=1)
        topframe.pack(side='top')
        self.noteview = NoteView(topframe, self.songString)


class NoteView:
    def __init__(self, frame):
        self.canvas = tk.Canvas(frame, width=60, height=200)
        self.canvas.pack()

        self.canvas.create_text(15, 190, text='hi')
        im = Image.open('png.png')
        self.image = ImageTk.PhotoImage(im)
        self.canvas.create_image(20, 20, anchor='nw', image=self.image)

w = Window()
  

TypeError:“ PhotoImage”对象不可调用

1 个答案:

答案 0 :(得分:0)

问题是tkinter会以某种方式将图像绑定到窗口,而不是您的情况。您应该使用self.canvas.image = ImageTk.PhotoImage(im)self.canvas.create_image(20, 20, anchor='nw', image=self.canvas.image)。希望对您有所帮助!