如何用python tkinter 编写一段代码? 请用python tkinter 编写一段代码:在同一窗口中每隔2秒打开并显示同一目录下的所有图片。要求逐一打开目录下的图片并立即显示,然后再打开并显示下一个图片

import os
import glob
from tkinter import *
from PIL import Image, ImageTk

class ImagePlayer:
    def __init__(self, master, image_dir):
        self.master = master
        self.image_dir = image_dir
        self.images = glob.glob(os.path.join(image_dir, '*.jpg'))
        self.index = 0
        self.display_image()

    def display_image(self):
        if self.index >= len(self.images):
            return
        image_path = self.images[self.index]
        image = Image.open(image_path)
        photo = ImageTk.PhotoImage(image)
        label = Label(self.master, image=photo)
        label.image = photo
        label.pack()
        self.index += 1
        self.master.after(2000, self.display_image)

root = Tk()
root.geometry('800x600')
image_dir = '.'  # 图片所在目录,这里设为当前目录
player = ImagePlayer(root, image_dir)
root.mainloop()

代码的执行流程如下:

  1. __init__ 函数中,初始化类的属性,包括主窗口、图片目录、图片列表和索引。
  2. display_image 函数中,读取下一张图片,将其显示在标签控件中,并递增索引值。然后使用 after 函数设置定时器,每隔 2 秒自动调用 display_image 函数显示下一张图片,直到所有图片都被显示完为止。
  3. 创建主窗口,设置窗口大小和图片目录,创建 ImagePlayer 对象并启动主循环。

在这个例子中,我们使用 Tkinter 模块创建了一个主窗口,并通过 PIL 模块打开了图片并将其显示在标签控件中。通过逐一打开并显示目录下的图片,我们实现了每隔 2 秒打开并显示同一目录下的所有图片的功能。