2012-06-13 3 views
2

У меня есть часть кода Python, которая должна открывать новое окно в течение определенного периода времени, а затем закрывать окно. Окно запускается нажатием кнопки. Вот основные сведения о том, что у меня есть.Закройте окно tkinter через некоторое время

def restore(self): 
    self.restore = Toplevel() 

    message = "Select an available Backup to Restore to." 

    Label(self.restore, text=message).pack() 
    # We then create and entry widget, pack it and then 
    # create two more button widgets as children to the frame. 

    os.chdir('.') 
    for name in os.listdir("."): 
     if os.path.isdir(name): 
      self.button = Button(self.restore, text=name,command=self.restoreCallBack) 
      self.button.pack(side=BOTTOM,padx=10) 

def restoreCallBack(self): 
    self.restoreCB = Toplevel() 

    message = "Please wait while the database is restored..." 
    Label(self.restoreCB, text=message, padx=100, pady=20).pack() 

    time.sleep(5) 

    self.restore.destroy() 
    self.restoreCB.destroy() 

Мне нужно окно restoreCallBack, которое будет отображаться в течение 5 секунд, а затем закрыть окна. Благодаря!

ответ

4

Посмотрите на метод after. например .:

widget.after(5000,callback) 

Вы не должны использовать сон в (главном потоке) графического интерфейса - Вся вещь будет просто заморозить.

+0

Это сработало отлично, спасибо! –

Смежные вопросы