PySimpleGUI > file_types() 在 macOS 上不工作

PySimpleGUI > file_types() not working on macOS

file_types() 在 macOS 上不可用。

浏览时它应该只显示 PNG 文件。

有人知道浏览多个 PNG 文件的替代方法吗?

第 9 行

# /usr/bin/python3
# -*- coding: utf-8 -*-

import PySimpleGUI as sg

def main():

    layout = [
             [sg.FilesBrowse(button_text='Galaxie(n) hochladen', file_types=('.png'), key='_FILES_')],
             [sg.OK(),
              sg.Cancel()]
             ]

    window = sg.Window('Vorverarbeitung', layout, background_color='#1e1e1e')

    while True:
        event, values = window.read()
        print(values['_FILES_'].split(';'))
        if event in (None, 'Exit'):
            break
    window.close()
file_types=('.png')    # value in str format

选项 file_types 的 MacOS 格式错误,应为 Tuple[(str, str), ...]

file_types=(
    ('All PNG Files', '*.png'), 
    ('All Files', '*.*'),
)

修改后的代码

# /usr/bin/python3
# -*- coding: utf-8 -*-

import PySimpleGUI as sg

def main():

    layout = [
        [sg.Input(key='_INPUT_'),
         sg.FilesBrowse(button_text='Galaxie(n) hochladen', file_types=(('All PNG Files', '*.png'), ('All Files', '*.*')), key='_FILES_')],
        [sg.OK(),
         sg.Cancel()],
    ]

    window = sg.Window('Vorverarbeitung', layout, background_color='#1e1e1e')

    while True:
        event, values = window.read()
        if event in (None, 'Exit'):
            break
        print(values['_INPUT_'].split(';'))
        print(values['_FILES_'].split(';'))

    window.close()

main()

在 MacOS 上 运行 的 PySimpleGUI 中似乎关闭了这个选项,但有问题。

            if running_mac():
                file_name = tk.filedialog.askopenfilenames(initialdir=self.InitialFolder)
            else:
                file_name = tk.filedialog.askopenfilenames(filetypes=filetypes, initialdir=self.InitialFolder, parent=self.ParentForm.TKroot)

在主要的 PySimpleGUI 文档中,如果您搜索 file_types,您会发现:

[编辑] PySimpleGUI 项目建议在 GitHub 而不是 post 上打开问题的原因之一是 Issue 表单包含此清单,旨在为您节省大量时间。即使您不想 post 一个问题,下次遇到 question/program 时,也请查看 GitHub 问题清单。它可能会为您和其他人节省很多时间。

  • [ ] 在主要文档中搜索了您的问题 www.PySimpleGUI.org
  • [ ] 寻找与您的目标相似的演示程序 Demos.PySimpleGUI.org
  • [] 如果不是 tkinter - 寻找特定端口的演示程序
  • [] 对于非 tkinter - 如果不是 PySimpleGUI(Qt、WX、Remi),请查看您的特定端口的自述文件
  • [ ] 运行 您的程序在调试器之外(从命令行)
  • [ ] 搜索问题(打开和关闭)以查看是否已报告 Issues.PySimpleGUI.org
  • [ ] 尝试在 GitHub 上使用 PySimpleGUI.py 文件。您的问题可能已经修复但未发布