ttkbootstrap图片显示器

1、ttkbootstrap简介

ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序,官方地址:https://ttkbootstrap.readthedocs.io/en/latest/

2、效果展示

3、代码

# coding=utf-8
from ttkbootstrap import *
from ttkbootstrap.tooltip import ToolTip
import glob
from PIL import ImageTk, Image

root = Window()
root.title('图片查看器')  # 设置窗口标题

index = 0  # 照片索引初始化
photos = glob.glob(
    './photos/*')  # 获取photos下面所有的文件,photos下面我放的都是图片文件,如果有其它文件,可以进行排除,如只想.jpg结尾图片,则photos = glob.glob('./photos/*.jpg')
photos = [ImageTk.PhotoImage(Image.open(photo).resize((480, 320))) for photo in photos]  # 设置图片比例为480*320

frame = Frame(root, borderwidth=1, relief=SUNKEN)  # 设置边框样式
frame.pack(padx=10, pady=10)  # 距离x,y轴边界10像素

label_pic = Label(frame, image=photos[index])  # 初始显示第一张照片
label_pic.pack(padx=10, pady=10)

# 展示是第几张图片
var_index = StringVar()
var_index.set(f"{1} of {len(photos)}")
label_index = Label(frame, textvariable=var_index, relief=tk.SUNKEN, anchor=tk.CENTER)  # 设定label_index样式,居中,边框样式为凹陷的
label_index.pack(padx=10, pady=2, fill=X)  # X轴方向填满

# 上一张、下一张按钮
button_prev = Button(frame, text='上一张', width=10)
button_prev.pack(padx=100, pady=5, side=LEFT)

button_next = Button(frame, text='下一张', width=10)
button_next.pack(padx=100, pady=5, side=RIGHT)


# 更换图片函数
def change_pic(num):
    global index
    index += num
    # 如果是最后一张照片,点击下一张则跳转到第一张图片
    if index >= len(photos):
        index = 0
    # 如果是第一张粘片,点击上一张则跳转到最后一张图片
    if index < 0:
        index = len(photos) - 1
    label_pic.configure(image=photos[index])
    var_index.set(f"{index + 1} of {len(photos)}")


# 给按钮绑定函数
button_prev.configure(command=lambda: change_pic(-1))  # 上一张图片则索引减1
button_next.configure(command=lambda: change_pic(1))  # 下一张图片则索引加1


# 添加提示
ToolTip(button_prev, text='点击展示上一张图片')
ToolTip(button_next, text='点击展示下一张图片')
ToolTip(label_index, text='图片索引展示')

root.mainloop()

4、组件提示效果

鼠标移动到按钮上面,会显示提示的信息
ttkbootstrap图片显示器_第1张图片

5、其它

旨在功能实现,如果想更好看,大家可以自行探索…
PS:想拿去即用的小伙伴注意修改图片路径

你可能感兴趣的:(Python3,gui,tkinter)