簡體   English   中英

清除現有圖像后如何在Tkinter中更新新圖像?

[英]How to update new image in the Tkinter after clearing an existing image.?

我在名為1.jgp和2.jpg的文件夾中有2張圖像。 我想編寫一個python代碼,在2秒的延遲后,在窗格的相同位置一個接一個地顯示所有圖像。 我試圖用圖像2.jpg一個接一個地添加相同的代碼,但是它不起作用。 在顯示並清除1.jpg之后,我需要在此代碼中進行哪些更改才能顯示圖像2.jpg。 我嘗試了以下代碼:

from tkinter import *
from PIL import Image, ImageTk
import time

root = Tk()
filename1="1.jpg"
filename2="2.jpg"
canvas = Canvas(width=800, height=800, bg='white')
canvas.pack()
image = Image.open(filename)
photo = ImageTk.PhotoImage(image)
canvas.create_image(250, 250, image=photo)
root.mainloop()

您可以使用Tkinter的after函數在延時后調用函數。 然后,可以在畫布上使用函數itemconfig來照顧圖像的實際更改。

像這樣:

from tkinter import *
from PIL import Image, ImageTk

class myGUI(object):
    def __init__(self):
        self.root = Tk()
        self.canvas = Canvas(width=800, height=800, bg='white')
        self.canvas.pack()

        filename="1.jpg"
        image = Image.open(filename)
        self.photo = ImageTk.PhotoImage(image)
        self.img = self.canvas.create_image(250, 250, image=self.photo)

        self.root.after(2000, self.change_photo)
        self.root.mainloop()

    def change_photo(self):
        filename = "2.jpg"
        image = Image.open(filename)

        self.photo = ImageTk.PhotoImage(image)
        self.canvas.itemconfig(self.img, image=self.photo)

if __name__ == "__main__":
    gui = myGUI()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM