我使用glade和C语言来开发GUI。我可以将所有数字键和字母键从键盘映射到glade按钮作为加速器。但是,我无法映射以下按钮:ESC,向上,向下,向左,向右箭头。
在林间空地,当我在加速器字段中向上,向下,向左,向右或esc键入时,不会存储任何内容。但是,如果我按住CTRL键入它们,它会将它们存储为主按钮。
即使在.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键的情况下使用它们?
答案 0 :(得分:0)
实际导致问题的原因是: 改性剂=&#34; GDK_CONTROL_MASK&#34 ;. 那么对我有用的是: 将GDK_CONTROL_MASK设置为GDK_LOCK_MASK。