diff --git a/questions/align-center-middle.question.md b/questions/align-center-middle.question.md new file mode 100644 index 000000000..696840424 --- /dev/null +++ b/questions/align-center-middle.question.md @@ -0,0 +1,34 @@ +--- +title: "How do I center a widget in a screen?" +alt_titles: + - "centre a widget" + - "center a control" + - "centre a control" +--- + +To center a widget within a container use +[`align`](https://textual.textualize.io/styles/align/). But remember that +`align` works on the *children* of a container, it isn't something you use +on the child you want centered. + +For example, here's an app that shows a `Button` in the middle of a +`Screen`: + +```python +from textual.app import App, ComposeResult +from textual.widgets import Button + +class ButtonApp(App): + + CSS = """ + Screen { + align: center middle; + } + """ + + def compose(self) -> ComposeResult: + yield Button("PUSH ME!") + +if __name__ == "__main__": + ButtonApp().run() +``` diff --git a/questions/pass-args-to-app.question.md b/questions/pass-args-to-app.question.md new file mode 100644 index 000000000..3fef2a326 --- /dev/null +++ b/questions/pass-args-to-app.question.md @@ -0,0 +1,38 @@ +--- +title: "How do I pass arguments to an app?" +alt_titles: + - "pass arguments to an application" + - "pass parameters to an app" + - "pass parameters to an application" +--- + +When creating your `App` class, override `__init__` as you would when +inheriting normally. For example: + +```python +from textual.app import App, ComposeResult +from textual.widgets import Static + +class Greetings(App[None]): + + def __init__(self, greeting: str="Hello", to_greet: str="World") -> None: + self.greeting = greeting + self.to_greet = to_greet + super().__init__() + + def compose(self) -> ComposeResult: + yield Static(f"{self.greeting}, {self.to_greet}") +``` + +Then the app can be run, passing in various arguments; for example: + +```python +# Running with default arguments. +Greetings().run() + +# Running with a keyword arguyment. +Greetings(to_greet="davep").run() + +# Running with both positional arguments. +Greetings("Well hello", "there").run() +```