如何用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()
代码的执行流程如下:
- 在
__init__
函数中,初始化类的属性,包括主窗口、图片目录、图片列表和索引。 - 在
display_image
函数中,读取下一张图片,将其显示在标签控件中,并递增索引值。然后使用after
函数设置定时器,每隔 2 秒自动调用display_image
函数显示下一张图片,直到所有图片都被显示完为止。 - 创建主窗口,设置窗口大小和图片目录,创建
ImagePlayer
对象并启动主循环。
在这个例子中,我们使用 Tkinter
模块创建了一个主窗口,并通过 PIL
模块打开了图片并将其显示在标签控件中。通过逐一打开并显示目录下的图片,我们实现了每隔 2 秒打开并显示同一目录下的所有图片的功能。
评论 (0)