Files
textual/docs/examples/widgets/custom.py
2022-05-06 10:20:05 +01:00

34 lines
752 B
Python

from rich.panel import Panel
from rich.style import Style
from textual.app import App
from textual.reactive import Reactive
from textual.widget import Widget
class Hover(Widget):
mouse_over = Reactive(False)
def render(self, style: Style) -> Panel:
return Panel("Hello [b]World[/b]", style=("on red" if self.mouse_over else ""))
def on_enter(self) -> None:
self.mouse_over = True
def on_leave(self) -> None:
self.mouse_over = False
class HoverApp(App):
"""Demonstrates smooth animation"""
async def on_mount(self) -> None:
"""Build layout here."""
hovers = (Hover() for _ in range(10))
await self.screen.dock(*hovers, edge="top")
HoverApp.run(log_path="textual.log")