From cb311a9b7607f5a94d65bdf3dbbec5c23d57e8ba Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 2 Apr 2024 15:46:46 -0400 Subject: [PATCH] app: text field and callback Signed-off-by: Vincent Batts --- src/helloworld/app.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/helloworld/app.py b/src/helloworld/app.py index 17392ab..9b15d9b 100644 --- a/src/helloworld/app.py +++ b/src/helloworld/app.py @@ -8,18 +8,33 @@ from toga.style.pack import COLUMN, ROW class HelloWorld(toga.App): def startup(self): - """Construct and show the Toga application. + main_box = toga.Box(style=Pack(direction=COLUMN)) - Usually, you would add your application to a main content box. - We then create a main window (with a name matching the app), and - show the main window. - """ - main_box = toga.Box() + name_label = toga.Label( + "Your name: ", + style=Pack(padding=(0, 5)) + ) + self.name_input = toga.TextInput(style=Pack(flex=1)) + + name_box = toga.Box(style=Pack(direction=ROW, padding=5)) + name_box.add(name_label) + name_box.add(self.name_input) + + button = toga.Button( + "Say Hello!", + on_press=self.say_hello, + style=Pack(padding=5) + ) + main_box.add(name_box) + main_box.add(button) self.main_window = toga.MainWindow(title=self.formal_name) self.main_window.content = main_box self.main_window.show() + def say_hello(self, widget): + print(f"Hello, {self.name_input.value}") + def main(): return HelloWorld()