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、组件提示效果
鼠标移动到按钮上面,会显示提示的信息
5、其它
旨在功能实现,如果想更好看,大家可以自行探索…
PS:想拿去即用的小伙伴注意修改图片路径