pysimplegui之tiee实例(附带github仓库地址)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 今天想写一个文件管理器,结果整了一下午,还是自己看的源代码少,分析别人代码少,最终还是看别人代码才找到错误原因。<br>#!/usr/bin/env python import sys import os import PySimpleGUI as sg sg.theme( 'light brown 8' ) "" " Demo program that will display a folder hierarchy with icons for the folders and files. Note that if you are scanning a large folder then tkinter will eventually complain about too many bitmaps. This can be fixed easily enough by reusing the images within PySimpleGUI (enhancement request can be opened if you hit this problem) "" " # Base64 versions of images of a folder and a file. PNG files (may not work with PySimpleGUI27, swap with GIFs) folder_icon = b 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAABnUlEQVQ4y8WSv2rUQRSFv7vZgJFFsQg2EkWb4AvEJ8hqKVilSmFn3iNvIAp21oIW9haihBRKiqwElMVsIJjNrprsOr/5dyzml3UhEQIWHhjmcpn7zblw4B9lJ8Xag9mlmQb3AJzX3tOX8Tngzg349q7t5xcfzpKGhOFHnjx+9qLTzW8wsmFTL2Gzk7Y2O/k9kCbtwUZbV+Zvo8Md3PALrjoiqsKSR9ljpAJpwOsNtlfXfRvoNU8Arr/NsVo0ry5z4dZN5hoGqEzYDChBOoKwS/vSq0XW3y5NAI/uN1cvLqzQur4MCpBGEEd1PQDfQ74HYR+LfeQOAOYAmgAmbly+dgfid5CHPIKqC74L8RDyGPIYy7+QQjFWa7ICsQ8SpB/IfcJSDVMAJUwJkYDMNOEPIBxA/gnuMyYPijXAI3lMse7FGnIKsIuqrxgRSeXOoYZUCI8pIKW/OHA7kD2YYcpAKgM5ABXk4qSsdJaDOMCsgTIYAlL5TQFTyUIZDmev0N/bnwqnylEBQS45UKnHx/lUlFvA3fo+jwR8ALb47/oNma38cuqiJ9AAAAAASUVORK5CYII=' file_icon = b 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAABU0lEQVQ4y52TzStEURiHn/ecc6XG54JSdlMkNhYWsiILS0lsJaUsLW2Mv8CfIDtr2VtbY4GUEvmIZnKbZsY977Uwt2HcyW1+dTZvt6fn9557BGB+aaNQKBR2ifkbgWR+cX13ubO1svz++niVTA1ArDHDg91UahHFsMxbKWycYsjze4muTsP64vT43v7hSf/A0FgdjQPQWAmco68nB+T+SFSqNUQgcIbN1bn8Z3RwvL22MAvcu8TACFgrpMVZ4aUYcn77BMDkxGgemAGOHIBXxRjBWZMKoCPA2h6qEUSRR2MF6GxUUMUaIUgBCNTnAcm3H2G5YQfgvccYIXAtDH7FoKq/AaqKlbrBj2trFVXfBPAea4SOIIsBeN9kkCwxsNkAqRWy7+B7Z00G3xVc2wZeMSI4S7sVYkSk5Z/4PyBWROqvox3A28PN2cjUwinQC9QyckKALxj4kv2auK0xAAAAAElFTkSuQmCC' starting_path = sg.popup_get_folder( 'Folder to display' ) if not starting_path: sys.exit(0) treedata = sg.TreeData() def add_files_in_folder(parent, dirname): files = os.listdir(dirname) for f in files: fullname = os.path. join (dirname, f) if os.path.isdir(fullname): # if it's a folder, add folder and recurse treedata.Insert(parent, fullname, f, values=[], icon=folder_icon) add_files_in_folder(fullname, fullname) else : treedata.Insert(parent, fullname, f, values=[os.stat(fullname).st_size], icon=file_icon) add_files_in_folder( '' , starting_path) layout = [[sg.Text( 'File and folder browser Test' )], [sg.Tree(data=treedata, # headings=['Size', ], # auto_size_columns=True, # select_mode=sg.TABLE_SELECT_MODE_EXTENDED, # num_rows=20, # col0_width=40, # key='-TREE-', # show_expanded=False, # enable_events=True, # expand_x=True, # expand_y=True, ),], [sg.Button( 'Ok' ), sg.Button( 'Cancel' )]] window = sg.Window( 'Tree Element Test' , layout, resizable=True, finalize=True) while True: # Event Loop event , values = window.read() if event in (sg.WIN_CLOSED, 'Cancel' ): break print( event , values) window.close() # See PyCharm help at https://www.jetbrains.com/help/pycharm/ |
参考资料:
1] GitHub 仓库: https://github.com/PySimpleGUI/PySimpleGUI
[2] 200 多个示例程序: https://github.com/PySimpleGUI/PySimpleGUI/tree/master/DemoPrograms
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了