mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
examples working
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
from rich.align import Align
|
||||
from rich.console import Console, ConsoleOptions, RenderResult
|
||||
from rich.padding import Padding
|
||||
from rich.text import Text
|
||||
|
||||
from textual.app import App
|
||||
@@ -14,10 +13,10 @@ try:
|
||||
except ImportError:
|
||||
print("Please install pyfiglet to run this example")
|
||||
|
||||
font = Figlet(font="small")
|
||||
|
||||
|
||||
class FigletText:
|
||||
"""A renderable to generate figlet text that adapts to fit the container."""
|
||||
|
||||
def __init__(self, text: str) -> None:
|
||||
self.text = text
|
||||
|
||||
@@ -27,25 +26,22 @@ class FigletText:
|
||||
size = min(options.max_width / 2, options.max_height)
|
||||
|
||||
text = self.text
|
||||
if size <= 4:
|
||||
if size < 4:
|
||||
yield Text(text, style="bold")
|
||||
return
|
||||
if size < 6:
|
||||
font_name = "mini"
|
||||
elif size < 8:
|
||||
font_name = "small"
|
||||
elif size < 10:
|
||||
font_name = "standard"
|
||||
else:
|
||||
font_name = "big"
|
||||
font = Figlet(font=font_name)
|
||||
yield Text(font.renderText(text).rstrip("\n"), style="bold")
|
||||
if size < 7:
|
||||
font_name = "mini"
|
||||
elif size < 8:
|
||||
font_name = "small"
|
||||
elif size < 10:
|
||||
font_name = "standard"
|
||||
else:
|
||||
font_name = "big"
|
||||
font = Figlet(font=font_name)
|
||||
yield Text(font.renderText(text).rstrip("\n"), style="bold")
|
||||
|
||||
|
||||
class CalculatorApp(App):
|
||||
async def on_load(self, event: events.Load) -> None:
|
||||
await self.bind("q,ctrl+c", "quit", "Quit")
|
||||
|
||||
async def on_startup(self, event: events.Startup) -> None:
|
||||
|
||||
layout = GridLayout(gap=(2, 1), gutter=1, align=("center", "center"))
|
||||
@@ -74,7 +70,7 @@ class CalculatorApp(App):
|
||||
|
||||
layout.place(
|
||||
*buttons.values(),
|
||||
numbers=Static(Padding(numbers, (0, 1), style="white on rgb(51,51,51)")),
|
||||
numbers=Static(numbers, padding=(0, 1), style="white on rgb(51,51,51)"),
|
||||
zero=make_button("0"),
|
||||
)
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ class GridTest(App):
|
||||
layout.add_row("row", fraction=1, max_size=10)
|
||||
layout.set_repeat(True, True)
|
||||
layout.add_areas(center="col-2-start|col-4-end,row-2-start|row-3-end")
|
||||
layout.set_align("center", "center")
|
||||
layout.set_align("stretch", "center")
|
||||
|
||||
# *(Placeholder() for _ in range(20)),
|
||||
layout.place(*(Placeholder() for _ in range(20)), center=Placeholder())
|
||||
|
||||
@@ -9,16 +9,6 @@ from textual.views import DockView
|
||||
from textual.widgets import Header, Footer, Placeholder, ScrollView
|
||||
|
||||
|
||||
logging.basicConfig(
|
||||
level="NOTSET",
|
||||
format="%(message)s",
|
||||
datefmt="[%X]",
|
||||
handlers=[FileHandler("richtui.log")],
|
||||
)
|
||||
|
||||
log = logging.getLogger("rich")
|
||||
|
||||
|
||||
class MyApp(App):
|
||||
"""An example of a very simple Textual App"""
|
||||
|
||||
@@ -31,12 +21,13 @@ class MyApp(App):
|
||||
view = await self.push_view(DockView())
|
||||
|
||||
footer = Footer()
|
||||
footer.add_key("b", "Toggle sidebar")
|
||||
footer.add_key("q", "Quit")
|
||||
header = Header()
|
||||
body = ScrollView()
|
||||
sidebar = Placeholder()
|
||||
|
||||
footer.add_key("b", "Toggle sidebar")
|
||||
footer.add_key("q", "Quit")
|
||||
|
||||
await view.dock(header, edge="top")
|
||||
await view.dock(footer, edge="bottom")
|
||||
await view.dock(sidebar, edge="left", size=30, name="sidebar")
|
||||
|
||||
Reference in New Issue
Block a user