调用多个函数时关闭 windows

Closing windows when calling multiple functions

所以我正在练习 PySimpleGui 并创建角色 sheet。我有一个触发顶部“if 事件”的按钮,但是当 create_name 函数 returns 'name' 时 window 没有关闭,我得到下一个函数 window 打开并以多个 windows 打开结束。有没有办法关闭 window 作为 return 函数的一部分,或者有更简单的方法来过渡到新函数?

        if event == 'Create New Character':
            player_character.character_name = create_name()
            player_character.selected_profession = create_profession()

def create_name():
    layout = [
        [sg.Text('Enter your character name: ')],
        [sg.InputText('', key='name_text')],
        [sg.Button('Continue'), sg.Exit()]
    ]

    window = sg.Window('MERP Character Creation', layout)

    while True:
        event, values = window.Read()
        if event is None or event == 'Exit':
            break

        if event == 'Continue':
            name = values['name_text'] 
            return name


    window.Close()

只需在 return

之前保留声明 window.close()

举两个例子,记住window.close()并不意味着函数结束。

    while True:

        event, values = window.read()
        if event is None or event == 'Exit':
            break

        if event == 'Continue':
            name = values['name_text']
            window.close()
            return name

    window.close()
    while True:

        event, values = window.read()
        if event is None or event == 'Exit':
            result = None
            break

        if event == 'Continue':
            result = values['name_text']
            break

    window.close()
    return result