PySimpleGUI版本4.60.4 写一个 界面 带右侧滚动条 的 图片查看器
时间: 2023-05-28 18:01:43 浏览: 519
这是一个基于PySimpleGUI版本4.60.4的图片查看器,该程序使用了右侧滚动条功能,允许用户轻松浏览并查看多张图片。
```python
import PySimpleGUI as sg
import os
# 获取文件目录下所有图片文件的路径
def get_img_filenames(directory):
# 支持的图片格式列表
img_ext = (".gif", ".ico", ".jpeg", ".jpg", ".png", ".bmp")
# 获取目录下所有文件的路径
all_files = os.listdir(directory)
# 过滤出图片文件的路径
img_files = [os.path.join(directory, filename) for filename in all_files if filename.lower().endswith(img_ext)]
return img_files
# 构建GUI界面
def build_gui(directory):
# 获取图片文件的路径列表
img_files = get_img_filenames(directory)
# 定义滚动条和图片组件
scrollbar = sg.Scroll(vertical_only=True)
image_viewer = sg.Graph(canvas_size=(800, 600), graph_bottom_left=(0, 0), graph_top_right=(800, 600), key='-IMAGE_VIEWER-')
# 定义布局
layout = [
[
sg.Column([
[scrollbar],
], size=(30, 600)),
sg.Column([
[image_viewer],
], size=(800, 600)),
]
]
# 创建窗体并设定标题
window = sg.Window('图片查看器', layout)
# 边读边显示图片
for i, img_file in enumerate(img_files):
# 尝试打开当前图片文件
try:
image_viewer.draw_image(filename=img_file, location=(0, 600 * i))
# 如果当前文件无法打开,则跳过
except Exception as e:
print(f"Error: file={img_file}, exception={str(e)}")
# 循环读取事件
while True:
event, values = window.read()
# 点击窗口关闭按钮或者按下ESC键,程序将关闭窗口和退出程序
if event == sg.WINDOW_CLOSED or event == 'Cancel' or event == 'Escape:27':
break
# 退出程序
window.close()
# 测试程序
if __name__ == '__main__':
build_gui('./images/') # 显示图片目录
```
使用说明:
1. 将上述代码保存为.py文件;
2. 修改代码最后一行的参数为你的图片目录;
3. 执行该.py文件,即可打开图片查看器,并显示指定目录下的所有图片。
阅读全文