43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from textual.app import App, ComposeResult
|
|
from textual.containers import Horizontal
|
|
from textual.widgets import RadioButton, RadioSet
|
|
|
|
|
|
class RadioChoicesApp(App[None]):
|
|
CSS_PATH = "radio_set.css"
|
|
|
|
def compose(self) -> ComposeResult:
|
|
with Horizontal():
|
|
# A RadioSet built up from RadioButtons.
|
|
with RadioSet():
|
|
yield RadioButton("Battlestar Galactica")
|
|
yield RadioButton("Dune 1984")
|
|
yield RadioButton("Dune 2021")
|
|
yield RadioButton("Serenity", value=True)
|
|
yield RadioButton("Star Trek: The Motion Picture")
|
|
yield RadioButton("Star Wars: A New Hope")
|
|
yield RadioButton("The Last Starfighter")
|
|
yield RadioButton(
|
|
"Total Recall :backhand_index_pointing_right: :red_circle:",
|
|
id="focus_me",
|
|
)
|
|
yield RadioButton("Wing Commander")
|
|
# A RadioSet built up from a collection of strings.
|
|
yield RadioSet(
|
|
"Amanda",
|
|
"Connor MacLeod",
|
|
"Duncan MacLeod",
|
|
"Heather MacLeod",
|
|
"Joe Dawson",
|
|
"Kurgan, [bold italic red]The[/]",
|
|
"Methos",
|
|
"Rachel Ellenstein",
|
|
"Ramírez",
|
|
)
|
|
|
|
def on_mount(self) -> None:
|
|
self.query_one("#focus_me", RadioButton).focus()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
RadioChoicesApp().run()
|