如何在一定时间后终止函数调用

2024-09-28 03:17:56 发布

您现在位置:Python中文网/ 问答频道 /正文

def input():
  sg.theme('TanBlue')
  event, values = sg.Window('Login Window',
              [[sg.T('Please Enter your email'), sg.In(key='-ID-')],
              [sg.B('OK'), sg.B('Cancel') ]]).read(close=True)


  login_id = values['-ID-']
  return login_id

我用python编写了这个简单的函数,它是一个弹出的小GUI,用于从用户处获取输入。但我想做的是,经过一定的时间,比如说10秒。如果没有输入,我想关闭GUI并为预期输入使用默认值。我的整个脚本使用这个GUI暂停,如果没有输入,脚本将不会继续。我不想这样,但我不知道如何实现这一点。我尝试在python中使用该信号,但我使用的是windows 10,无法正确集成它。我想要一个通用的解决方案 谢谢


Tags: 脚本eventidinputdefloginguisg
1条回答
网友
1楼 · 发布于 2024-09-28 03:17:56

input是Python中的一个关键字,因此不应用作函数名

您可以在read调用中添加超时

此示例将给用户3秒钟的时间填写一个值,然后按OK:

import PySimpleGUI as sg

def timed_input():
    sg.theme('TanBlue')
    event, values = sg.Window('Login Window',
                              [[sg.T('Please Enter your email'), sg.In(key='-ID-')],
                               [sg.B('OK'), sg.B('Cancel')]]).read(timeout=3000, close=True)
    if event == sg.TIMEOUT_KEY:
        print('Timed out')
        login_id = None
    else:
        login_id = values['-ID-']
    return login_id

print(timed_input())

很好地使用了缩短的元素名和close参数。我以前从未见过关闭参数超时。有趣的组合

相关问题 更多 >

    热门问题