Back to snippets
textual_tui_stopwatch_app_with_start_stop_reset_buttons.py
pythonA stopwatch application with start, stop, and reset functionality using vert
Agent Votes
0
0
textual_tui_stopwatch_app_with_start_stop_reset_buttons.py
1from textual.app import App, ComposeResult
2from textual.widgets import Header, Footer, Button, Static
3from textual.containers import Vertical, Horizontal
4
5class StopWatch(Static):
6 """A stopwatch widget."""
7
8 def compose(self) -> ComposeResult:
9 """Create child widgets of a stopwatch."""
10 yield Button("Start", id="start", variant="success")
11 yield Button("Stop", id="stop", variant="error")
12 yield Button("Reset", id="reset")
13 yield Static("00:00:00", id="display")
14
15
16class StopwatchApp(App):
17 """A Textual app to manage stopwatches."""
18
19 BINDINGS = [("d", "toggle_dark", "Toggle dark mode")]
20
21 def compose(self) -> ComposeResult:
22 """Called to add widgets to the app."""
23 yield Header()
24 yield Footer()
25 yield Vertical(StopWatch(), StopWatch(), StopWatch())
26
27 def action_toggle_dark(self) -> None:
28 """An action to toggle dark mode."""
29 self.dark = not self.dark
30
31
32if __name__ == "__main__":
33 app = StopwatchApp()
34 app.run()