Files
textual/tests/snapshot_tests/snapshot_apps/modal_screen_bindings.py
Will McGugan eb4c7ef50f Fix issue with modals (#2195)
* Fix issue with modals

* changelog

* fix binding on button

* binding tweak

* changelog

* snapshots

* version bump
2023-04-02 08:52:35 +01:00

35 lines
901 B
Python

from textual.app import App, ComposeResult
from textual.screen import Screen, ModalScreen
from textual.widgets import Button, Footer, Header, Label, Input
class Dialog(ModalScreen):
def compose(self) -> ComposeResult:
yield Label("Dialog")
yield Input()
yield Button("OK", id="ok")
def on_button_pressed(self, event: Button.Pressed) -> None:
if event.button.id == "ok":
self.app.pop_screen()
def on_input_submitted(self, event: Input.Submitted) -> None:
self.app.pop_screen() # Never gets here
class ModalApp(App):
BINDINGS = [("enter", "open_dialog", "Open Dialog")]
def compose(self) -> ComposeResult:
yield Header()
yield Label("Hello")
yield Footer()
def action_open_dialog(self) -> None:
self.push_screen(Dialog())
if __name__ == "__main__":
app = ModalApp()
app.run()