1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
from datetime import datetime
from textual.app import App, ComposeResult
from textual.reactive import reactive
from textual.widgets import Digits
class Clock(App):
CSS = """
Screen {align: center middle}
Digits {width: auto}
"""
time: reactive[datetime] = reactive(datetime.now, recompose=True)
def compose(self) -> ComposeResult:
yield Digits(f"{self.time:%X}")
def update_time(self) -> None:
self.time = datetime.now()
def on_mount(self) -> None:
self.set_interval(1, self.update_time)
if __name__ == "__main__":
app = Clock()
app.run()
|