如果从 PySimpleGUI 弹出单击 sg.Submit(),如何生成 file.txt?
How to generate file.txt if pop-up click on sg.Submit() from PySimpleGUI?
我正在尝试将这行代码放入此图形用户界面中...
try:
name_file = input('Name:')
file= open(name_file, 'r+')
except FileNotFoundError:
file= open(name_file, 'w+')
file.writelines(u'file!')
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()
# print(event, values[0])
try:
name_file = input('Name:')
file= open(name_file, 'r+')
except FileNotFoundError:
file= open(name_file, 'w+')
file.writelines(u'file!')
file.close()
- python 3.7(将 PySimpleGUI 导入为 sg)
您不必将其放入 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()
您可以创建 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':
# 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()
您可以使用 high-level Popup
函数获取您的文件名,这将消除打开您自己的文件名的要求 window 并将代码压缩为:
import PySimpleGUI as sg
name_file = sg.PopupGetText('Enter Filename')
if name_file:
try:
file = open(name_file, 'r+')
except FileNotFoundError:
file = open(name_file, 'w+')
file.writelines(u'file!')
还有一个 Popup
使您能够浏览名为 PopupGetFile 的文件名。与 PopupGetText
相比的优势在于,您可以获得将文件名粘贴到输入框中的相同能力,但如果您喜欢这种方式,您还可以获得一个 "Save As..." 按钮来浏览文件。使用它,您的代码将是:
import PySimpleGUI as sg
name_file = sg.PopupGetFile('Enter Filename', save_as=True)
if name_file:
try:
file = open(name_file, 'r+')
except FileNotFoundError:
file = open(name_file, 'w+')
file.writelines(u'file!')
我正在尝试将这行代码放入此图形用户界面中...
try:
name_file = input('Name:')
file= open(name_file, 'r+')
except FileNotFoundError:
file= open(name_file, 'w+')
file.writelines(u'file!')
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()
# print(event, values[0])
try:
name_file = input('Name:')
file= open(name_file, 'r+')
except FileNotFoundError:
file= open(name_file, 'w+')
file.writelines(u'file!')
file.close()
- python 3.7(将 PySimpleGUI 导入为 sg)
您不必将其放入 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()
您可以创建 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':
# 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()
您可以使用 high-level Popup
函数获取您的文件名,这将消除打开您自己的文件名的要求 window 并将代码压缩为:
import PySimpleGUI as sg
name_file = sg.PopupGetText('Enter Filename')
if name_file:
try:
file = open(name_file, 'r+')
except FileNotFoundError:
file = open(name_file, 'w+')
file.writelines(u'file!')
还有一个 Popup
使您能够浏览名为 PopupGetFile 的文件名。与 PopupGetText
相比的优势在于,您可以获得将文件名粘贴到输入框中的相同能力,但如果您喜欢这种方式,您还可以获得一个 "Save As..." 按钮来浏览文件。使用它,您的代码将是:
import PySimpleGUI as sg
name_file = sg.PopupGetFile('Enter Filename', save_as=True)
if name_file:
try:
file = open(name_file, 'r+')
except FileNotFoundError:
file = open(name_file, 'w+')
file.writelines(u'file!')