Issues with developer.gnome.org/gnome-devel-demos/3.12/gmenu.py.html
- From: Jürgen Kleber <jkleber2701 t-online de>
- To: docs-feedback gnome org
- Subject: Issues with developer.gnome.org/gnome-devel-demos/3.12/gmenu.py.html
- Date: Tue, 26 Aug 2014 18:54:54 +0200
Hello,
those warnings about the accessibility bus in Debian Sid i386 occur with
every Python application using the Gtk library. Maybe the Gtk classes do
not work properly together with the AT-SPI2 interface in the
32bit-Versions, but this should be discussed elsewhere.
You can simply work around the gmenu.py script's failure to display the
menu items in Debian Sid amd64 systems just by wrapping around them
another Gio.Menu object and placing this in the Gtk.Application menu
bar. Here is the changed code:
from gi.repository import Gtk
from gi.repository import Gio
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="GMenu Example",
application=app)
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
win = MyWindow(self)
win.show_all()
def do_startup(self):
# start the application
Gtk.Application.do_startup(self)
# new (2014-08-26): Create fileMenu as wrapper around menu
fileMenu = Gio.Menu()
# create a menu
menu = Gio.Menu()
# append to the menu three options
menu.append("New", "app.new")
menu.append("About", "app.about")
menu.append("Quit", "app.quit")
# changed (2014-08-26): menu as submenu of fileMenu
fileMenu.append_submenu("File", menu)
# changed (2014-08-26): Place fileMenu in the application menu
bar
self.set_menubar(fileMenu)
# create an action for the option "new" of the menu
new_action = Gio.SimpleAction.new("new", None)
# connect it to the callback function new_cb
new_action.connect("activate", self.new_cb)
# add the action to the application
self.add_action(new_action)
# option "about"
about_action = Gio.SimpleAction.new("about", None)
about_action.connect("activate", self.about_cb)
self.add_action(about_action)
# option "quit"
quit_action = Gio.SimpleAction.new("quit", None)
quit_action.connect("activate", self.quit_cb)
self.add_action(quit_action)
# callback function for "new"
def new_cb(self, action, parameter):
print ("This does nothing. It is only a demonstration.")
# callback function for "about"
def about_cb(self, action, parameter):
print ("No AboutDialog for you. This is only a demonstration.")
# callback function for "quit"
def quit_cb(self, action, parameter):
print ("You have quit.")
self.quit()
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
Regards, Jürgen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]