首页 > 解决方案 > PySimpleGUI 从 FileSaveAs 对话框中获取选定的扩展名

问题描述

我在我的 PySimpleGUI 应用程序中创建了一个FileSaveAsfile_types按钮,并将可用的选项定义为“png”和“jpg”,但我无法知道用户选择了这两个选项中的哪一个。换句话说,除非用户明确输入,否则我得到的值不包括文件扩展名。

这是代码:

import PySimpleGUI as sg

layout = [[
    sg.InputText(visible=False, enable_events=True, key='fig_path'),
    sg.FileSaveAs(
        key='fig_save',
        file_types=(('PNG', '.png'), ('JPG', '.jpg')),  # TODO: better names
    )
]]
window = sg.Window('Demo Application', layout, finalize=True)

fig_canvas_agg = None
while True:  # Event Loop
    event, values = window.Read()
    if (event == 'fig_path') and (values['fig_path'] != ''):
        print('Saving to:', values['fig_path'])
    if event is None:
        break

例子:

在此处输入图像描述

在上述情况下,该值将是“[some path]\Test\hello”,而不是以“hello.png”结尾。

有什么方法可以获取返回的路径以包含扩展名,或者单独获取扩展名值?

标签: pythontkinterpysimplegui

解决方案


添加defaultextension="*.*"tk.filedialog.asksaveasfilename ()

它在 pysimplegui.py 版本 4.30.0 的第 3332 行附近


推荐阅读