林间键盘(逃生,箭头)加速器

时间:2018-06-06 13:07:03

标签: c user-interface gtk glade acceleratorkey

我使用glade和C语言来开发GUI。我可以将所有数字键和字母键从键盘映射到glade按钮作为加速器。但是,我无法映射以下按钮:ESC,向上,向下,向左,向右箭头。

在林间空地,当我在加速器字段中向上,向下,向左,向右或esc键入时,不会存储任何内容。但是,如果我按住CTRL键入它们,它会将它们存储为主按钮。

enter image description here

即使在.glade文件中,键也会按照它们应该单独工作的方式存储,但只有当我按住CTRL时它们才会起作用。

<object class="GtkButton" id="button_left_roll">
  <property name="visible">True</property>
  <property name="can_focus">True</property>
  <property name="receives_default">True</property>
  <property name="image">image19</property>
  <property name="always_show_image">True</property>
  <signal name="clicked" handler="on_button_left_roll_clicked" swapped="no"/>
  <accelerator key="Left" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>

如何在不按住CTRL键的情况下使用它们?

1 个答案:

答案 0 :(得分:0)

实际导致问题的原因是: 改性剂=&#34; GDK_CONTROL_MASK&#34 ;. 那么对我有用的是: 将GDK_CONTROL_MASK设置为GDK_LOCK_MASK。