如何更新画布上的图像?

汉斯·弗里兹

这是我遇到麻烦的代码的本质:

camelot = Canvas(main, width = 400, height = 300)
camelot.grid(row = 0, column = 0, rowspan = 11, columnspan = 3)
MyImage = PhotoImage(file = "sample1.gif")
camelot.create_image(0, 0, anchor = NW, image = MyImage)

这是从一开始就运行的。我以后想要在另一个函数中执行的操作是替换"sample1.gif""sample2.gif",并且可能以后再替换为"sample3.gif"我被困住了,到目前为止,我一直没有尝试过的任何方法。

简单

将图像添加到画布:

self.image_on_canvas = self.canvas.create_image(0, 0, image = ...)

更改图片:

self.canvas.itemconfig(self.image_on_canvas, image = ...)


完整示例:

from Tkinter import *

#----------------------------------------------------------------------

class MainWindow():

    #----------------

    def __init__(self, main):

        # canvas for image
        self.canvas = Canvas(main, width=60, height=60)
        self.canvas.grid(row=0, column=0)

        # images
        self.my_images = []
        self.my_images.append(PhotoImage(file = "ball1.gif"))
        self.my_images.append(PhotoImage(file = "ball2.gif"))
        self.my_images.append(PhotoImage(file = "ball3.gif"))
        self.my_image_number = 0

        # set first image on canvas
        self.image_on_canvas = self.canvas.create_image(0, 0, anchor = NW, image = self.my_images[self.my_image_number])

        # button to change image
        self.button = Button(main, text="Change", command=self.onButton)
        self.button.grid(row=1, column=0)

    #----------------

    def onButton(self):

        # next image
        self.my_image_number += 1

        # return to first image
        if self.my_image_number == len(self.my_images):
            self.my_image_number = 0

        # change image
        self.canvas.itemconfig(self.image_on_canvas, image = self.my_images[self.my_image_number])

#----------------------------------------------------------------------

root = Tk()
MainWindow(root)
root.mainloop()

示例中使用的图像:

ball1.gif ball1.gifball2.gif ball2.gifball3.gifball3.gif

结果:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从画布上拖动图像?

来自分类Dev

如何从多个图像查看画布上的图像

来自分类Dev

如何在画布上的图像上换行

来自分类Dev

如何在画布上的图像上“绘画”?

来自分类Dev

如何在每个画布上添加图像?

来自分类Dev

如何在织物画布上添加图像?

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

在画布上处理图像

来自分类Dev

如何在放置在画布上的图像上获取点击事件

来自分类Dev

如何在画布上重新着色灰度图像

来自分类Dev

如何将图像用作画布上的文字的颜色

来自分类Dev

如何下载HTML5画布上的图像?

来自分类Dev

如何在多个图像上应用画布转换

来自分类Dev

如何在画布上绘制运动图像的多条路径

来自分类Dev

如何在画布上分层绘制图像?

来自分类Dev

如何在DearPyGui画布上绘制PIL图像?

来自分类Dev

如何在服务器上上传画布图像?

来自分类Dev

如何在画布上重新着色灰度图像

来自分类Dev

如何替换画布图像?

来自分类Dev

如何在Tkinter画布上更新matplotlib子图?

来自分类Dev

在画布上重画相同的图像

来自分类Dev

从画布上单击删除图像

来自分类Dev

Tkinter更改画布上的图像

来自分类Dev

AngularJS在画布上写图像

来自分类Dev

在画布上渲染svg图像

来自分类Dev

如何使Tkinter画布更新?

来自分类Dev

如何更新 JavaFX 画布?

来自分类Dev

在画布上围绕图像中心旋转图像