Skip to content

Instantly share code, notes, and snippets.

@MartinThoma
Created February 7, 2022 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MartinThoma/b2d1ec7ebcb579a9b586747ff5287b35 to your computer and use it in GitHub Desktop.
Save MartinThoma/b2d1ec7ebcb579a9b586747ff5287b35 to your computer and use it in GitHub Desktop.
from rich.panel import Panel
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) -> 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 custom widgets"""
async def on_mount(self) -> None:
hovers = (Hover() for _ in range(10))
await self.view.dock(*hovers, edge="top")
HoverApp.run(log="textual.log")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment