我试图在 Tkinter 的水平行中放置一组图像。我通过遍历一个列表并从工作目录加载相应的图像来做到这一点。我根据索引乘以一定的间距来放置图像。但是,当我实际放置图像时,它们都会在最后一个位置彼此重叠放置,而不是分开放置。计数值工作正常,当print(spacing*(count+1))
它输出正确的值时,但在放置时它们都聚集在最后一个位置。
这跟Label()
上课有关系吗?
for count, mood in enumerate(mood_options):
mood_img = Image.open(f"img/{mood}.png")
mood_img_copy = mood_img.resize(img_size, Image.ANTIALIAS)
mood_img_resized = ImageTk.PhotoImage(mood_img_copy)
mood_img_label = Label(root, image=mood_img_resized).place(relx=spacing*(count+1), rely=0.35)
print(spacing * (count + 1))
编辑:我已经使用这种精确的方法来放置按钮,见下文:
for count, mood in enumerate(mood_options):
mood_btn = Button(root, text=mood.capitalize(), command=lambda mood=mood: register_mood(mood), width=7) \
.place(relx=(count + 1) * spacing, rely=0.5)
这完美无瑕,这让我想知道为什么它不适用于图像而不是按钮。