为什么以下代码不起作用:
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窗口。为什么会这样?
答案 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()