diff --git a/docs/examples/events/prevent.py b/docs/examples/events/prevent.py new file mode 100644 index 000000000..66ffb034c --- /dev/null +++ b/docs/examples/events/prevent.py @@ -0,0 +1,26 @@ +from textual.app import App, ComposeResult +from textual.containers import Horizontal +from textual.widgets import Button, Input + + +class PreventApp(App): + """Demonstrates `prevent` context manager.""" + + def compose(self) -> ComposeResult: + yield Input() + yield Button("Clear", id="clear") + + def on_button_pressed(self) -> None: + """Clear the text input.""" + input = self.query_one(Input) + with input.prevent(Input.Changed): # (1) + input.value = "" + + def on_input_changed(self) -> None: + """Called as the user types.""" + self.bell() # (2) + + +if __name__ == "__main__": + app = PreventApp() + app.run()