diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
commit | f8363b456f1ab31ee56abad579b215af195093d5 (patch) | |
tree | b1500c675c2e0a55fb75721a854e1510acf7c862 /examples/layout.py | |
parent | Initial commit. (diff) | |
download | rich-f8363b456f1ab31ee56abad579b215af195093d5.tar.xz rich-f8363b456f1ab31ee56abad579b215af195093d5.zip |
Adding upstream version 9.11.0.upstream/9.11.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | examples/layout.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/layout.py b/examples/layout.py new file mode 100644 index 0000000..046476b --- /dev/null +++ b/examples/layout.py @@ -0,0 +1,57 @@ +""" + +Demonstrates a dynamic Layout + +""" + +from datetime import datetime + +from time import sleep + +from rich.align import Align +from rich.console import Console +from rich.layout import Layout +from rich.live import Live +from rich.text import Text + +console = Console() +layout = Layout() + +layout.split( + Layout(name="header", size=1), + Layout(ratio=1, name="main"), + Layout(size=10, name="footer"), +) + +layout["main"].split( + Layout(name="side"), Layout(name="body", ratio=2), direction="horizontal" +) + +layout["side"].split(Layout(), Layout()) + +layout["body"].update( + Align.center( + Text( + """This is a demonstration of rich.Layout\n\nHit Ctrl+C to exit""", + justify="center", + ), + vertical="middle", + ) +) + + +class Clock: + """Renders the time in the center of the screen.""" + + def __rich__(self) -> Text: + return Text(datetime.now().ctime(), style="bold magenta", justify="center") + + +layout["header"].update(Clock()) + +with Live(layout, screen=True) as live: + try: + while True: + sleep(1) + except KeyboardInterrupt: + pass |