textual/examples/simple.py
Will McGugan 942b00f255 ws
2021-10-25 13:50:00 +01:00

51 lines
1.2 KiB
Python

from rich.markdown import Markdown
from textual.app import App
from textual.widgets import Header, Footer, Placeholder, ScrollView
class MyApp(App):
"""An example of a very simple Textual App"""
stylesheet = """
App > View {
layout: dock
}
#body {
padding: 1
}
#sidebar {
edge left
size: 40
}
"""
async def on_load(self) -> None:
"""Bind keys with the app loads (but before entering application mode)"""
await self.bind("b", "view.toggle('sidebar')", "Toggle sidebar")
await self.bind("q", "quit", "Quit")
async def on_mount(self) -> None:
"""Create and dock the widgets."""
body = ScrollView()
await self.view.mount(
Header(),
Footer(),
body=body,
sidebar=Placeholder(),
)
async def get_markdown(filename: str) -> None:
with open(filename, "rt") as fh:
readme = Markdown(fh.read(), hyperlinks=True)
await body.update(readme)
await self.call_later(get_markdown, "richreadme.md")
MyApp.run(title="Simple App", log="textual.log")