崩溃后 Return 到 main window - PySimpleGUI
Return to main window after crash - PySimpleGUI
当我 运行 以下代码时,它如预期的那样崩溃,因为没有单选按钮。如您所见,我有一个错误输出框。 我想在错误弹出窗口中单击“确定”后return到main_window。现在,如果我在错误弹出窗口中单击“确定”,main_window 冻结,程序崩溃。任何帮助将不胜感激。
import traceback
import PySimpleGUI as sg
sg.theme('Material2')
layout = [ [sg.Text('Test Window', font = 'Comic',text_color='green')],
[sg.InputText('Use Browse button'), sg.FileBrowse()],
[sg.Button('Submit'), sg.Button('Cancel')]
]
main_window = sg.Window('OS Met Processor', layout)
try:
while True:
event, values = main_window.read()
if event in (None, 'Cancel'):
break
values = {k: v for k, v in values.items() if v}
if values['RadioYes']:
values = {k: v for k, v in values.items() if v}
sg.Popup('Done!')
main_window.close()
except Exception as e:
tb = traceback.format_exc()
sg.popup_ok(f'ERROR!', e, tb)
您必须在 while
循环中使用 try
和 except
。
试试这个:
while True:
event, values = main_window.read()
if event in (None, 'Cancel'):
break
values = {k: v for k, v in values.items() if v}
try:
if values['RadioYes']:
values = {k: v for k, v in values.items() if v}
sg.Popup('Done!')
main_window.close()
except Exception as e:
tb = traceback.format_exc()
sg.popup_ok(f'ERROR!', e, tb)
当我 运行 以下代码时,它如预期的那样崩溃,因为没有单选按钮。如您所见,我有一个错误输出框。 我想在错误弹出窗口中单击“确定”后return到main_window。现在,如果我在错误弹出窗口中单击“确定”,main_window 冻结,程序崩溃。任何帮助将不胜感激。
import traceback
import PySimpleGUI as sg
sg.theme('Material2')
layout = [ [sg.Text('Test Window', font = 'Comic',text_color='green')],
[sg.InputText('Use Browse button'), sg.FileBrowse()],
[sg.Button('Submit'), sg.Button('Cancel')]
]
main_window = sg.Window('OS Met Processor', layout)
try:
while True:
event, values = main_window.read()
if event in (None, 'Cancel'):
break
values = {k: v for k, v in values.items() if v}
if values['RadioYes']:
values = {k: v for k, v in values.items() if v}
sg.Popup('Done!')
main_window.close()
except Exception as e:
tb = traceback.format_exc()
sg.popup_ok(f'ERROR!', e, tb)
您必须在 while
循环中使用 try
和 except
。
试试这个:
while True:
event, values = main_window.read()
if event in (None, 'Cancel'):
break
values = {k: v for k, v in values.items() if v}
try:
if values['RadioYes']:
values = {k: v for k, v in values.items() if v}
sg.Popup('Done!')
main_window.close()
except Exception as e:
tb = traceback.format_exc()
sg.popup_ok(f'ERROR!', e, tb)