Tkinter图像不显示

时间:2018-12-12 04:46:30

标签: python tkinter

为什么以下代码不起作用:

root = Tk()

canvas = Canvas(root, width=1500, height=1500)


def createTank(x, y):
    tank = PhotoImage(file="Game/tank.gif")
    canvas.create_image(x, y, image=tank) 
    canvas.pack()

createTank(500, 500)
root.mainloop()

运行代码时,我只是得到一个空白的tkinter窗口。为什么会这样?

2 个答案:

答案 0 :(得分:1)

尝试此代码

from tkinter import *
root = Tk()

canvas = Canvas(root, width=1500, height=1500)
canvas.pack()
tank = PhotoImage(file="Game/tank.gif")

def createTank(x, y):
    canvas.create_image(x, y, image=tank)

createTank(500, 500)

root.mainloop()

答案 1 :(得分:0)

您可能希望将代码移出该函数,因为它将在全局范围内起作用。使用功能时,当功能退出时,图像对象可能会被垃圾回收,这将导致标签显示为空白。 有一个简单的解决方法(保存对图像对象的持久引用),但是以上代码的要点是显示尽可能简单的代码。

尝试按以下方式构建代码:

import Tkinter as tk

root = tk.Tk()
image = tk.PhotoImage(file="Game/tank.gif")
label = tk.Label(image=image)
label.pack()
root.mainloop()