2016-11-22 73 views
-1

我有一個多框架Tkinter程序運行,並在我需要一個新的框架打開沒有按鈕按下的情況下。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") 

各種數據和編碼都在定義之後。如果條件是真的,那「登錄」這是我希望它顯示新的框架

根給出的錯誤:NameError:名字「根」沒有定義

Controller.after(等)得出:NameError:名字「控制器」沒有定義

儘管控制器被頻繁使用沒有問題,整個程序的其餘部分

回答

2

我會建議after回調見:Alarm handlers and other non-event callbacks

after(delay_ms, callback=None, *args) [#]
Registers an alarm callback that is called after a given time.

root.after(60000, new_window_func, args) 
+0

不要調用'button.after',因爲OP說他們不想要一個按鈕。相反,使用'root'或'controller'(假設'controller'是一個小部件)。另外,我建議根據問題中的代碼給出一個例子(例如:'root.after(60000,controller.show_frame,「NewWindow」)') –

+0

謝謝@BryanOakley--調整了答案。 – sytech

+0

感謝您的回覆。我已經測試並更新了我原來的問題,因爲這種方法似乎有錯誤@BryanOakley所有的幫助都非常讚賞 – lwatson