我有一个多帧Tkinter程序正在运行,我需要在没有按下按钮的情况下打开一个新帧。
如果我有一个按钮,它将被编码为:
button = tk.Button(self, text="New Window",
command=lambda: controller.show_frame("NewWindow"))
有没有办法在time.sleep(60)
命令后打开新窗口?这就是我的尝试:
def on_button(self):
if LogIn in Data:
time.sleep(5)
print("Welcome")
root.after(6, controller.show_frame("HomePage"))
else:
print("please register")
各种数据和编码在定义之后。如果条件为真,则“登录”这是我希望它显示新帧的时间
Root给出错误:NameError:未定义名称“root”
Controller.after(etc)给出:NameError:名称'controller'未定义
尽管在整个程序的其余部分经常使用控制器而没有问题
答案 0 :(得分:2)
我建议after
回调参见:Alarm handlers and other non-event callbacks
之后(delay_ms,callback = None,* args)[#]
注册在给定时间后调用的警报回调。
root.after(60000, new_window_func, args)