поляна клавиатура (escape, стрелки) ускорители

Я использую поляну вместе с языком C для разработки графического интерфейса. Я могу сопоставить все цифровые клавиши и буквенные клавиши с клавиатуры на кнопки поляны в качестве ускорителей. Однако я не могу сопоставить следующие кнопки: 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?


person user3143155    schedule 06.06.2018    source источник
comment
modifiers="GDK_CONTROL_MASK" говорит, что они не должны работать без нажатия клавиши ctrl. Что произойдет, если вы просто удалите эту часть?   -  person Alexander Dmitriev    schedule 07.06.2018
comment
@AlexanderDmitriev Большое спасибо, это была проблема, но ее удаление привело к тому, что графический интерфейс не отображался. Но я искал модификаторы и нашел обходной путь   -  person user3143155    schedule 07.06.2018


Ответы (1)


Что на самом деле вызывает проблему: modifiers="GDK_CONTROL_MASK". Итак, что сработало для меня: установка GDK_CONTROL_MASK на GDK_LOCK_MASK.

person user3143155    schedule 07.06.2018
comment
GDK_LOCK_MASK a Lock key (depending on the modifier mapping of the X server this may either be CapsLock or ShiftLock). Я почти уверен, что это кладж, а не решение. - person Alexander Dmitriev; 08.06.2018
comment
да я согласен, но я перепробовал все остальные варианты модификаторов и у меня ничего не получилось - person user3143155; 09.06.2018