[pygtk] Best pattern for keyboard accelerators in dialog
Thomas Guettler
hv at tbz-pariv.de
Fri Jan 26 18:58:03 WST 2007
Am Freitag, 26. Januar 2007 09:49 schrieb Richard Taylor:
> Hi
>
> I have a Window that has a number of widgets placed in it, including a
> TreeView, a Frame (containing more widgets), buttons etc.
>
Hi,
does this help you?
http://www.pygtk.org/pygtk2tutorial/sec-WidgetAccelerators.html
18.3. Widget Accelerators
The following methods:
widget.add_accelerator(accel_signal, accel_group, accel_key, accel_mods,
accel_flags)
widget.remove_accelerator(accel_group, accel_key, accel_mods)
add and remove accelerators from a gtk.AcceleratorGroup that must be attached
to the top level widget to handle the accelerators.
The accel_signal is a signal that is valid for the widget to emit.
The accel_key is a keyboard key to use as the accelerator.
The accel_mods are modifiers to add to the accel_key (e.g. Shift, Control,
etc.):
SHIFT_MASK
LOCK_MASK
CONTROL_MASK
MOD1_MASK
MOD2_MASK
MOD3_MASK
MOD4_MASK
MOD5_MASK
BUTTON1_MASK
BUTTON2_MASK
BUTTON3_MASK
BUTTON4_MASK
BUTTON5_MASK
RELEASE_MASK
The accel_flags set options about how the accelerator information is
displayed. Valid values are:
ACCEL_VISIBLE # display the accelerator key in the widget display
ACCEL_LOCKED # do not allow the accelerator display to change
An accelerator group is created by the function:
accel_group = gtk.AccelGroup()
The accel_group is attached to a top level widget with the following method:
window.add_accel_group(accel_group)
An example of adding an accelerator:
menu_item.add_accelerator("activate", accel_group,
ord('Q'), gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
More information about the pygtk
mailing list