Files
textual/sandbox/darren/just_a_box.py
darrenburns e94ea25faf Filling the gap between horizontal and vertical scrollbars (#664)
* Fill the spacing between the scrollbars

* Add "scrollbar-corner-color" CSS rule and doc

* Remove unused print statement

* Some sandbox changes

* Remove redundant words from docs

* Add docstring to ScrollBarCorner class
2022-08-16 10:55:34 +01:00

60 lines
1.7 KiB
Python

from __future__ import annotations
from rich.console import RenderableType
from rich.panel import Panel
from textual import events
from textual.app import App, ComposeResult
from textual.layout import Horizontal, Vertical
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 Panel("Box")
class JustABox(App):
def compose(self) -> ComposeResult:
yield Horizontal(
Vertical(
Box(id="box1", classes="box"),
Box(id="box2", classes="box"),
# Box(id="box3", classes="box"),
# Box(id="box4", classes="box"),
# Box(id="box5", classes="box"),
# Box(id="box6", classes="box"),
# Box(id="box7", classes="box"),
# Box(id="box8", classes="box"),
# Box(id="box9", classes="box"),
# Box(id="box10", classes="box"),
id="left_pane",
),
Box(id="middle_pane"),
Vertical(
Box(id="boxa", classes="box"),
Box(id="boxb", classes="box"),
Box(id="boxc", classes="box"),
id="right_pane",
),
id="horizontal",
)
def key_p(self):
print(self.query("#horizontal").first().styles.layout)
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()