From 279df35098654e78b8d678e65988aa701e0f71b6 Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 21 May 2014 11:46:22 +0100 Subject: Add actions and handlers for hello world and quit Create two actions, "hello-world" and "quit", and add them to the application (which is an implementation of GActionMap). Connect the "activate" signal of the actions to handlers. Add an accelerator for each action, so that they can be triggered with a keyboard shortcut. --- python-gnome-app | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/python-gnome-app b/python-gnome-app index 440e95f..a69f801 100755 --- a/python-gnome-app +++ b/python-gnome-app @@ -1,7 +1,7 @@ #!/usr/bin/python3 import sys -from gi.repository import Gtk +from gi.repository import Gio, Gtk class PythonApp(Gtk.Application): @@ -11,10 +11,29 @@ class PythonApp(Gtk.Application): self, application_id="org.example.PythonGnome") self.connect("activate", self.on_activate) + self.connect("startup", self.on_startup) + + def on_startup(self, app): + self.window = Gtk.ApplicationWindow(application=app) + + hello_world = Gio.SimpleAction(name="hello-world", parameter_type=None) + self.add_action(hello_world) + self.add_accelerator("h", "app.hello-world", None) + hello_world.connect("activate", self.on_hello_world) + + quit = Gio.SimpleAction(name="quit", parameter_type=None) + self.add_action(quit) + self.add_accelerator("q", "app.quit", None) + quit.connect("activate", self.on_quit) def on_activate(self, app): - window = Gtk.ApplicationWindow(application=app) - window.show_all() + self.window.show_all() + + def on_hello_world(self, action=None, param=None): + print("Hello world!") + + def on_quit(self, action=None, param=None): + self.quit() app = PythonApp() exit_status = app.run(None) -- cgit