Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调用多个函数时关闭窗口_Python_Pysimplegui - Fatal编程技术网

Python 调用多个函数时关闭窗口

Python 调用多个函数时关闭窗口,python,pysimplegui,Python,Pysimplegui,所以我在练习PySimpleGui并创建一个角色表。我有一个按钮可以触发顶部的“if事件”,但是当create_name函数返回'name'时,窗口不会关闭,我会打开下一个函数窗口,最后打开多个窗口。作为返回函数的一部分,是否有关闭窗口的方法,或者有更简单的方法转换到新函数 if event == 'Create New Character': player_character.character_name = create_name()

所以我在练习PySimpleGui并创建一个角色表。我有一个按钮可以触发顶部的“if事件”,但是当create_name函数返回'name'时,窗口不会关闭,我会打开下一个函数窗口,最后打开多个窗口。作为返回函数的一部分,是否有关闭窗口的方法,或者有更简单的方法转换到新函数

        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()

只需在返回之前保留语句
window.close()

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

为True时:
事件,值=window.read()
如果事件为无或事件==“退出”:
打破
如果事件==“继续”:
名称=值['name\u text']
window.close()
返回名称
window.close()
为True时:
事件,值=window.read()
如果事件为无或事件==“退出”:
结果=无
打破
如果事件==“继续”:
结果=值['name\u text']
打破
window.close()
返回结果