Вам не нужно помещать это в GUI. Вы можете использовать его после GUI.
Вы можете использовать событие, чтобы проверить, какая кнопка была нажата, а затем вы можете запросить имя файла и записать данные в файл.
import PySimpleGUI as sg
layout = [
[sg.Text('Name1', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Text('Name2', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Text('Name3', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Submit(), sg.Cancel()]
]
window = sg.Window('Test', layout, background_color="white")
event, values = window.Read()
window.Close()
if event == 'Submit':
try:
name_file = input('Name:')
file= open(name_file, 'r+')
except FileNotFoundError:
file= open(name_file, 'w+')
all_values = values.values() # values from dictionary
text = "\n".join(all_values) # put values in separated lines
file.write(text) # write all as one string
file.close()
Вы можете создать графический интерфейс для запроса имени файла.
РЕДАКТИРОВАТЬ: Я использовал графический интерфейс для запроса имени файла.
import PySimpleGUI as sg
layout = [
[sg.Text('Name1', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Text('Name2', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Text('Name3', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Submit(), sg.Cancel()]
]
window = sg.Window('Test', layout, background_color="white")
event, values = window.Read()
window.Close()
if event == 'Submit':
# create before next GUI because I want to use the same name for variable `values`
all_values = values.values() # values from dictionary
text = "\n".join(all_values) # put values in separated lines
layout = [
[sg.Text('Filename', size=(15, 1), background_color="white" ), sg.InputText()],
[sg.Submit(), sg.Cancel()]
]
window = sg.Window('Test', layout, background_color="white")
event, values = window.Read()
window.Close()
if event == 'Submit':
name_file = values[0]
try:
fh = open(name_file, 'r+')
except FileNotFoundError:
fh = open(name_file, 'w+')
fh.write(text) # write all as one string
fh.close()