我目前正在编写一个程序,该程序将执行某些操作(例如不断计数),直到将某些内容输入到显示的对话框中。
但是,每当我尝试这样做时,程序都会在等待输入时冻结,因此在我尝试在后台运行的计数过程中不会取得任何进展。
有没有办法让计时器在后台连续运行,以便在 5 分钟内,计数器立即停止并且对话框消失?这是我的代码的基本框架。我使用 tkinter 对话框进行输入,并尝试创建一个在后台运行的计时器。
from time import *
from tkinter import *
from tkinter import messagebox
from tkinter import simpledialog
while timer<300:
sleep(1)
timer += 1
ROOT = Tk()
ROOT.withdraw()
USER_INP = simpledialog.askstring(title="Code Required",
prompt="What's the Code?:")
最好没有外部模块,但如果没有也没关系。提前致谢 :)
这是请求的代码
from tkinter import *
from tkinter import simpledialog
root = Tk()
root.withdraw()
def ask():
simpledialog.askstring(title="Code Required",
prompt="What's the Code?:")
## root.after(5000, root.destroy()) #added in the root.after() to try and terminate it after set time
root.after(3000,ask) #triggers ask() after 3000 ms(3 seconds)
root.after(100000, root.destroy()) # tried to wait 10 seconds before it breaks but this doesn't show the dialog box any more
root.mainloop()
湖上湖
相关分类