¿Hacer un temporizador de cuenta atrás con Python y Tkinter?

Quiero establecer una etiqueta en Tkinter usando mi función de temporizador de cuenta regresiva. En este momento, todo lo que hace es establecer la etiqueta en "10" una vez que se alcanza el 10 y realmente no entiendo por qué. Además, incluso si el temporizador se imprime en un terminal, en lugar de "¡Se acabó el tiempo!" poco nunca se imprime.

import time
import tkinter as tk

class App():
    def __init__(self):
        self.root = tk.Tk()
        self.label = tk.Label(text="null")
        self.label.pack()
        self.countdown()
        self.root.mainloop()

    # Define a timer.
    def countdown(self):
        p = 10.00
        t = time.time()
        n = 0
        # Loop while the number of seconds is less than the integer defined in "p"
        while n - t < p: 
            n = time.time()
            if n == t + p:
                self.label.configure(text="Time's up!")
            else:
                self.label.configure(text=round(n - t))

app=App()

Respuestas a la pregunta(1)

Su respuesta a la pregunta