我使用PhotoImage()
在python中打开了一个图像并将其放在画布上。但是,画布上没有任何内容。
为什么它没有在画布上显示或者我还需要做其他什么?
窗口和画布设置:
from tkinter import *
w = 960; h = 540
window = Tk()
window.title("Joe's Game")
window.geometry(str(w)+"x"+str(h))
canvas = Canvas(window, width=w, height=h)
canvas.configure(background='#2B2F37')
canvas.pack()
window.update()
图像设置:
block_mid = PhotoImage("images/block_mid.jpg")
block_cr = PhotoImage("images/block_corner_right.jpg")
block_cl = PhotoImage("images/block_corner_left.jpg")
block_1 = canvas.create_image(60,60,image = block_mid)
canvas.pack()
canvas.update()
window.update()
我检查了文件路径和名称,但我找不到原因。这对我来说并没有产生错误。此外,我在代码后尝试了canvas.pack()
,canvas.update()
和window.update()
,但他们似乎没有做任何事情。
答案 0 :(得分:0)
尝试以这种方式打开图片:
block_mid = PhotoImage(Image.open("images/block_mid.jpg"))
# all other images opened this way as well
答案 1 :(得分:0)
很可能会被垃圾收集所困扰。
你可以通过将图像绑定到python引用的永久物来阻止这种情况,例如:如果您在课堂上,请.With(rules => ...)
或CompositionRoot
。
即,在变量前添加window
来处理图像。