display seed, add input validation
This commit is contained in:
parent
1181e75ea0
commit
a90adbb165
10
bingo.py
10
bingo.py
@ -5,6 +5,7 @@ from textual.widgets import Header, Footer, Input, Label, Static, Button
|
||||
from textual.message import Message
|
||||
from textual.color import Color
|
||||
from textual.containers import Horizontal
|
||||
from textual.validation import Number
|
||||
|
||||
from asyncio import sleep
|
||||
|
||||
@ -69,12 +70,17 @@ class BingoApp(App):
|
||||
class BingoDisplay(Static):
|
||||
def compose(self) -> ComposeResult:
|
||||
"""Create child widgets for the app."""
|
||||
yield BingoBoard()
|
||||
self.board = BingoBoard()
|
||||
yield self.board
|
||||
input_field = Input(
|
||||
str(self.board.seed),
|
||||
type='integer',
|
||||
placeholder='UNIX timestamp',
|
||||
max_length=10,
|
||||
classes='seed_input'
|
||||
classes='seed_input',
|
||||
validators=[
|
||||
Number(minimum=1000000000, maximum = int(datetime.now().timestamp()))
|
||||
]
|
||||
)
|
||||
input_field.border_title = 'Seed'
|
||||
yield Horizontal(
|
||||
|
11
bingo.tcss
11
bingo.tcss
@ -15,11 +15,11 @@ BingoDisplay {
|
||||
}
|
||||
|
||||
.seed_input {
|
||||
width: 50%;
|
||||
width: 70%;
|
||||
border-title-align: left;
|
||||
}
|
||||
.roll_btn {
|
||||
width: 50%;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.box {
|
||||
@ -28,3 +28,10 @@ BingoDisplay {
|
||||
text-align: center;
|
||||
content-align: center middle;
|
||||
}
|
||||
|
||||
Input.-valid {
|
||||
border: tall $success 60%;
|
||||
}
|
||||
Input.-valid:focus {
|
||||
border: tall $success;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user