崩溃后 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 循环中使用 tryexcept

试试这个:

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)