Files
textual/sandbox/darren/just_a_box.py
2022-08-31 13:39:34 +01:00

46 lines
1.1 KiB
Python

from __future__ import annotations
from rich.console import RenderableType
from textual import events
from textual.app import App, ComposeResult
from textual.widget import Widget
class Box(Widget, can_focus=True):
CSS = "#box {background: blue;}"
def __init__(
self, id: str | None = None, classes: str | None = None, *children: Widget
):
super().__init__(*children, id=id, classes=classes)
def render(self) -> RenderableType:
return "Box"
class JustABox(App):
def compose(self) -> ComposeResult:
self.box = Box(classes="box1")
yield self.box
yield Box(classes="box2")
def key_a(self):
# self.box.styles.display = "none"
# self.box.styles.visibility = "hidden"
self.animator.animate(
self.box.styles,
"text_opacity",
value=0.0,
duration=2.0,
on_complete=self.box.remove,
)
async def on_key(self, event: events.Key) -> None:
await self.dispatch_key(event)
if __name__ == "__main__":
app = JustABox(css_path="just_a_box.css", watch_css=True)
app.run()