如何在PySimpleGUI中重置FileBrowse或指定其初始路径?
重置PySimpleGUI中FileBrowse的初始路径
好问题!在PySimpleGUI里想要重置或指定FileBrowse的初始路径,其实可以通过给FileBrowse控件添加key并动态更新它的initial_folder参数来实现,下面给你两种常用的方案:
方案1:恢复首次浏览的初始路径
默认情况下,FileBrowse首次打开的路径是当前工作目录,我们可以先把这个初始路径保存下来,点击Cancel时再恢复回去。
修改后的完整代码
import PySimpleGUI as sg import os # 记录初始工作目录作为默认浏览路径 initial_folder = os.getcwd() layout = [ [sg.Text('File', size=(4, 1)), sg.Input(key="-FILE-", default_text="browse!", size=(128, 2)), # 给FileBrowse添加key,并设置初始路径 sg.FileBrowse(key="-BROWSE-", initial_folder=initial_folder)], [sg.Button("Select file", key="-SELECT_FILE-"), sg.Button("Cancel", key="-SELECT_CANCEL-")] ] window = sg.Window('test reset browse', layout) while True: event, values = window.read() if event == "-SELECT_CANCEL-": # 重置输入框文本 window["-FILE-"].Update("cancel!") # 恢复FileBrowse的初始路径 window["-BROWSE-"].Update(initial_folder=initial_folder) if event == sg.WIN_CLOSED: break window.close()
关键说明
- 给
FileBrowse添加key="-BROWSE-",这样我们可以通过这个key定位到控件并修改它的属性 - 用
os.getcwd()获取程序启动时的工作目录,作为初始浏览路径保存 - 点击Cancel时,调用
window["-BROWSE-"].Update(initial_folder=initial_folder),就能让下次打开浏览窗口时回到初始路径
方案2:手动设置新的初始路径
如果你想在点击Cancel时指定一个自定义的路径(比如固定的文档目录),只需要把initial_folder的值改成你想要的路径即可:
if event == "-SELECT_CANCEL-": window["-FILE-"].Update("cancel!") # 手动设置下次浏览的初始路径,比如系统文档目录 custom_folder = os.path.expanduser("~/Documents") window["-BROWSE-"].Update(initial_folder=custom_folder)
这样下次点击浏览按钮时,就会直接打开你指定的自定义文件夹啦。
内容的提问来源于stack exchange,提问作者Zorglub29
相关产品推荐
相关产品推荐

