Cerrar automáticamente la ventana después de un cierto tiempo

En una clase, en una función estoy creando un Tkinter Canvas. Esta función está siendo llamada por otra clase, me gustaría que la ventana Tkinter se abriera durante 30 segundos y luego se cerrara. Lo tengo llamar

master.mainloop()
time.sleep(30)
master.destroy() 

Pero me sale un error

"elf.tk.call ('destroy', self._w) _tkinter.TclError: no se puede invocar el comando" destroy ": la aplicación se ha destruido"

Entonces, ¿cómo puedo hacer que se cierre?

Respuestas a la pregunta(2)

Su respuesta a la pregunta