如何更新 Tkinter Canvas 上的图片?

tkinterpythongui-programming更新于 2025/9/12 23:40:17

Python 中的 PIL 或 Pillow 包提供了一种在程序中处理图像的方法。我们可以打开图像、操纵图像以用于不同用途,还可以使用它来可视化数据。要在应用程序中显示图像,我们通常参考 Canvas 小部件。由于 Canvas 小部件提供了许多在应用程序中添加图像和对象的功能,我们可以使用它来显示图像。

要更改特定图像,我们可以使用 itemconfig() 构造函数来配置画布。它获取需要更新的图像文件并将其显示在窗口上。

示例

对于此示例,使用您选择的三幅图像并将它们保存在同一项目目录中。

# 导入所需的库
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk

# 创建 tkinter 框架的实例
win=Tk()

# 设置几何图形
win.geometry("750​​x400")

# 定义函数来更新图像
def update_image():
   canvas.itemconfig(image_container,image=img2)

# 创建画布并将图像添加到其中
canvas=Canvas(win, width=650, height=350)
canvas.pack()

# 创建一个按钮来更新画布图像
button=ttk.Button(win, text="Update", command=lambda:update_image())
button.pack()

# 在变量中打开图像
img1=PhotoImage(file="logo.png")
img2=PhotoImage(file="logo2.png")
img3=PhotoImage(file="logo3.png")

# 将图像添加到画布
image_container=canvas.create_image(0,0, anchor="nw",image=img1)

win.mainloop()

输出

运行上述代码将显示一个窗口,其中有一个画布和一个用于更新画布图像的按钮。

现在,单击"更新"按钮以更改图像。


相关文章


有用资源