Button¶
A simple button widget which can be pressed using a mouse click or by pressing Enter when it has focus.
- Focusable
- Container
Example¶
The example below shows each button variant, and its disabled equivalent. Clicking any of the non-disabled buttons in the example app below will result in the app exiting and the details of the selected button being printed to the console.
from textual.app import App, ComposeResult
from textual.containers import Horizontal, VerticalScroll
from textual.widgets import Button, Static
class ButtonsApp(App[str]):
CSS_PATH = "button.tcss"
def compose(self) -> ComposeResult:
yield Horizontal(
VerticalScroll(
Static("Standard Buttons", classes="header"),
Button("Default"),
Button("Primary!", variant="primary"),
Button.success("Success!"),
Button.warning("Warning!"),
Button.error("Error!"),
),
VerticalScroll(
Static("Disabled Buttons", classes="header"),
Button("Default", disabled=True),
Button("Primary!", variant="primary", disabled=True),
Button.success("Success!", disabled=True),
Button.warning("Warning!", disabled=True),
Button.error("Error!", disabled=True),
),
VerticalScroll(
Static("Flat Buttons", classes="header"),
Button("Default", flat=True),
Button("Primary!", variant="primary", flat=True),
Button.success("Success!", flat=True),