Checkbox polishing + fix auto-width in Horizontal layout (#942)

* checkbox widget

* fixes

* Checkbox additions, fix content width in horizontal layout

* Update docs, add tests for checkbox

* Remove some test code

* Small renaming of test class

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
This commit is contained in:
darrenburns
2022-10-18 15:17:44 +01:00
committed by GitHub
parent 8c075561a2
commit 4a0dc49bca
19 changed files with 595 additions and 21 deletions

View File

@@ -0,0 +1,28 @@
Screen {
align: center middle;
}
.container {
height: auto;
width: auto;
}
Checkbox {
height: auto;
width: auto;
}
.label {
height: 3;
content-align: center middle;
width: auto;
}
#custom-design {
background: darkslategrey;
}
#custom-design > .checkbox--switch {
color: dodgerblue;
background: darkslateblue;
}

View File

@@ -0,0 +1,33 @@
from textual.app import App, ComposeResult
from textual.containers import Horizontal
from textual.widgets import Checkbox, Static
class CheckboxApp(App):
def compose(self) -> ComposeResult:
yield Static("[b]Example checkboxes\n", classes="label")
yield Horizontal(
Static("off: ", classes="label"), Checkbox(), classes="container"
)
yield Horizontal(
Static("on: ", classes="label"),
Checkbox(value=True),
classes="container",
)
focused_checkbox = Checkbox()
focused_checkbox.focus()
yield Horizontal(
Static("focused: ", classes="label"), focused_checkbox, classes="container"
)
yield Horizontal(
Static("custom: ", classes="label"),
Checkbox(id="custom-design"),
classes="container",
)
app = CheckboxApp(css_path="checkbox.css")
if __name__ == "__main__":
app.run()