用python设计一个图片浏览器,点击“上一张”按钮,则显示前一张图片,点击“下一张”按钮, 则显示后一张图片。图片地址与项目在同一个文件夹里。
时间: 2024-10-18 07:20:02 浏览: 30
在Python中,你可以使用Tkinter库来创建一个简单的图形用户界面(GUI),并结合os模块来处理图片目录。以下是一个基础的示例:
```python
import os
from tkinter import *
from PIL import Image, ImageTk
# 图片目录
image_dir = "你的图片文件夹路径" # 替换为你实际的图片文件夹路径
file_count = len(os.listdir(image_dir)) # 获取图片总数
def show_next_image(index):
try:
img_path = os.path.join(image_dir, f"图片编号{index}.jpg") # 假设图片都是.jpg格式
img = Image.open(img_path)
resized_img = img.resize((400, 400), Image.ANTIALIAS) # 设置图片大小
photo = ImageTk.PhotoImage(resized_img)
label.config(image=photo)
label.image = photo
if index == file_count - 1:
next_button['state'] = DISABLED
else:
next_button['state'] = 'normal'
except Exception as e:
print(f"加载图片出错:{e}")
root = Tk()
root.title("图片浏览器")
# 初始化图片索引
index = 0
label = Label(root, image=None)
label.pack(pady=20)
img_path = os.path.join(image_dir, f"图片编号{index}.jpg")
try:
img = Image.open(img_path)
resized_img = img.resize((400, 400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(resized_img)
label.config(image=photo)
label.image = photo
except FileNotFoundError:
print("初始图片不存在,无法显示。")
next_button = Button(root, text="下一张", command=lambda: show_next_image(index + 1))
prev_button = Button(root, text="上一张", command=lambda: show_next_image(max(0, index - 1)))
next_button.grid(row=0, column=1)
prev_button.grid(row=0, column=0)
next_button['state'] = DISABLED # 首次加载后上一张不可点击
root.mainloop()
阅读全文