Label和Button 制作一个简易图片浏览器
时间: 2023-12-14 18:36:49 浏览: 119
好的,下面是一个简单的图片浏览器的代码,使用了 Label 和 Button 控件。
```python
import tkinter as tk
from PIL import Image, ImageTk
import os
class ImageBrowser:
def __init__(self, master):
self.master = master
master.title("Image Browser")
# 设置图片路径和索引
self.image_dir = "images"
self.image_names = os.listdir(self.image_dir)
self.current_image_index = 0
# 创建图片 Label
self.image_label = tk.Label(master)
self.image_label.pack()
# 创建按钮
self.prev_button = tk.Button(master, text="Prev", command=self.show_prev_image)
self.prev_button.pack(side=tk.LEFT)
self.next_button = tk.Button(master, text="Next", command=self.show_next_image)
self.next_button.pack(side=tk.RIGHT)
# 显示第一张图片
self.show_image()
def show_image(self):
# 加载图片
image_path = os.path.join(self.image_dir, self.image_names[self.current_image_index])
image = Image.open(image_path)
# 调整图片大小适应 Label
w, h = self.master.winfo_width(), self.master.winfo_height()
image = image.resize((w, h))
# 将图片显示在 Label 上
photo = ImageTk.PhotoImage(image)
self.image_label.config(image=photo)
self.image_label.image = photo
def show_prev_image(self):
# 显示上一张图片
self.current_image_index = (self.current_image_index - 1) % len(self.image_names)
self.show_image()
def show_next_image(self):
# 显示下一张图片
self.current_image_index = (self.current_image_index + 1) % len(self.image_names)
self.show_image()
root = tk.Tk()
app = ImageBrowser(root)
root.mainloop()
```
在这个示例中,我们首先定义了一个 `ImageBrowser` 类,并在构造函数中设置了图片路径和索引。然后创建了一个 `Label` 控件用于显示图片,以及两个 `Button` 控件用于切换图片。
`show_image()` 方法用于加载并显示当前图片,它使用了 `PIL` 库来加载和调整图片大小,然后将图片显示在 `Label` 上。
`show_prev_image()` 和 `show_next_image()` 方法用于切换上一张和下一张图片,它们分别将当前图片索引减一或加一,并调用 `show_image()` 方法来显示新图片。
最后,我们通过创建 `Tk` 对象和 `ImageBrowser` 对象,并调用 `mainloop()` 方法来运行应用程序。
阅读全文
相关推荐


















