长话短说:我想通过点击按钮在tkinter.Canvas
中绘制图像。显然,这将在调用mainloop()
之后发生。但是,create_image()
函数不会更新画布。
故事长话:
我试图通过单击按钮在tkinter.Canvas
中绘制多个图像。这大概是我的代码。
from PIL import Image
from PIL.ImageTk import PhotoImage
# this code is inside an event handler of a button click
# this is also a class-method
ROW_COUNT = 1
COL_COUNT = 3
for i in range(ROW_COUNT):
for j in range(COL_COUNT):
raw_img = Image.open(img_list[i * COL_COUNT + j])
resized_img = raw_img.resize((160, 160), Image.ANTIALIAS)
img = PhotoImage(resized_img)
x = j * 170
y = i * 170
self.canvas.create_image(x, y, anchor=NW, image=img)
self.canvas.update_idletasks()
此代码在单击按钮时执行,因此一定会在调用mainloop()
之后。但是,执行此代码后没有任何反应。如果我在循环后回想起mainloop()
,则只会绘制最后一张图像。如果我在内循环中调用mainloop()
,则仅绘制第一个图像(可能两个循环都中断了)。
如何绘制所有图像?