[pygtk] Accel map and labels
Sebastian Pölsterl
marduk at k-d-w.org
Mon Apr 3 00:57:31 WST 2006
Hi!
Currently, I'm trying to connect accelerators to MenuItems of a MenuBar.
Therefore, I use the gtk.accel_map_add_entry function, connect the accel
paths to a AccelGroup and finally I set the MenuItems' correct accel
paths.
The accelerators themselves work, but the labels don't get displayed.
Whereas, if I use the add_acclerator method for each MenuItem it works,
but with that solution the accelerators will be static and cannot be
changed.
Example code that doesn't display labels:
gtk.accel_map_add_entry('<Videodb-menubar>/File/New', ord('n'),
gtk.gdk.CONTROL_MASK)
gtk.accel_map_add_entry('<Videodb-menubar>/File/Quit', ord('q'),
gtk.gdk.CONTROL_MASK)
gtk.accel_map_add_entry('<Videodb-menubar>/Edit/Edit', ord('e'),
gtk.gdk.CONTROL_MASK)
accelgroup.connect_by_path('<Videodb-menubar>/File/New',
self.on_new_activate)
accelgroup.connect_by_path('<Videodb-menubar>/File/Quit',
gtk.main_quit)
accelgroup.connect_by_path('<Videodb-menubar>/Edit/Edit',
self.on_edit_activate)
self.view['new'].set_accel_path('<Videodb-menubar>/File/New')
self.view['quit'].set_accel_path('<Videodb-menubar>/File/Quit')
self.view['edit'].set_accel_path('<Videodb-menubar>/Edit/Edit')
Example code that does display labels:
self.view['new'].add_accelerator("activate", accelgroup, ord('n'),
gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.view['quit'].add_accelerator("activate", accelgroup, ord('q'),
gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.view['edit'].add_accelerator("activate", accelgroup, ord('e'),
gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
I appreciate any help!
--
Greetings,
Sebastian Pölsterl
More information about the pygtk
mailing list