mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
hello examples
This commit is contained in:
3
docs/examples/guide/widgets/hello04.css
Normal file
3
docs/examples/guide/widgets/hello04.css
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Screen {
|
||||||
|
layout: center;
|
||||||
|
}
|
||||||
59
docs/examples/guide/widgets/hello04.py
Normal file
59
docs/examples/guide/widgets/hello04.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
from itertools import cycle
|
||||||
|
|
||||||
|
from textual.app import App, ComposeResult
|
||||||
|
from textual.widgets import Static
|
||||||
|
|
||||||
|
|
||||||
|
hellos = cycle(
|
||||||
|
[
|
||||||
|
"Hola",
|
||||||
|
"Bonjour",
|
||||||
|
"Guten tag",
|
||||||
|
"Salve",
|
||||||
|
"Nǐn hǎo",
|
||||||
|
"Olá",
|
||||||
|
"Asalaam alaikum",
|
||||||
|
"Konnichiwa",
|
||||||
|
"Anyoung haseyo",
|
||||||
|
"Zdravstvuyte",
|
||||||
|
"Hello",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class Hello(Static):
|
||||||
|
"""Display a greeting."""
|
||||||
|
|
||||||
|
DEFAULT_CSS = """
|
||||||
|
Hello {
|
||||||
|
width: 40;
|
||||||
|
height: 9;
|
||||||
|
padding: 1 2;
|
||||||
|
background: $panel;
|
||||||
|
border: $secondary tall;
|
||||||
|
content-align: center middle;
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
def on_mount(self) -> None:
|
||||||
|
self.next_word()
|
||||||
|
|
||||||
|
def on_click(self) -> None:
|
||||||
|
self.next_word()
|
||||||
|
|
||||||
|
def next_word(self) -> None:
|
||||||
|
"""Get a new hello and update the content area."""
|
||||||
|
hello = next(hellos)
|
||||||
|
self.update(f"{hello}, [b]World[/b]!")
|
||||||
|
|
||||||
|
|
||||||
|
class CustomApp(App):
|
||||||
|
CSS_PATH = "hello03.css"
|
||||||
|
|
||||||
|
def compose(self) -> ComposeResult:
|
||||||
|
yield Hello()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = CustomApp()
|
||||||
|
app.run()
|
||||||
12
docs/examples/guide/widgets/hello05.css
Normal file
12
docs/examples/guide/widgets/hello05.css
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Screen {
|
||||||
|
layout: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Hello {
|
||||||
|
width: 40;
|
||||||
|
height: 9;
|
||||||
|
padding: 1 2;
|
||||||
|
background: $panel;
|
||||||
|
border: $secondary tall;
|
||||||
|
content-align: center middle;
|
||||||
|
}
|
||||||
45
docs/examples/guide/widgets/hello05.py
Normal file
45
docs/examples/guide/widgets/hello05.py
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
from itertools import cycle
|
||||||
|
|
||||||
|
from textual.app import App, ComposeResult
|
||||||
|
from textual.widgets import Static
|
||||||
|
|
||||||
|
|
||||||
|
hellos = cycle(
|
||||||
|
[
|
||||||
|
"Hola",
|
||||||
|
"Bonjour",
|
||||||
|
"Guten tag",
|
||||||
|
"Salve",
|
||||||
|
"Nǐn hǎo",
|
||||||
|
"Olá",
|
||||||
|
"Asalaam alaikum",
|
||||||
|
"Konnichiwa",
|
||||||
|
"Anyoung haseyo",
|
||||||
|
"Zdravstvuyte",
|
||||||
|
"Hello",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class Hello(Static):
|
||||||
|
"""Display a greeting."""
|
||||||
|
|
||||||
|
def on_mount(self) -> None:
|
||||||
|
self.action_next_word()
|
||||||
|
|
||||||
|
def action_next_word(self) -> None:
|
||||||
|
"""Get a new hello and update the content area."""
|
||||||
|
hello = next(hellos)
|
||||||
|
self.update(f"[@click='next_word']{hello}[/], [b]World[/b]!")
|
||||||
|
|
||||||
|
|
||||||
|
class CustomApp(App):
|
||||||
|
CSS_PATH = "hello05.css"
|
||||||
|
|
||||||
|
def compose(self) -> ComposeResult:
|
||||||
|
yield Hello()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = CustomApp()
|
||||||
|
app.run()
|
||||||
Reference in New Issue
Block a user