Обнаружение события нажатия Ctrl+ в lablgtk

Этот вопрос объясняет, как обнаружить нажатие Ctrl+ в Pygtk.

Это также работает на Lablgtk? Или есть более простой способ сделать это?

1 ответ

Решение

В lablgtk есть более прямое решение, хотя оно не сразу очевидно.

От события щелчка мыши ev (типа GdkEvent.Button.t), вы можете обнаружить такие события, как Ctrl+ клик / Shift+ клик с GdkEvent.Button.state а также Gdk.Convert.modifier), как в следующем примере:

let state = GdkEvent.Button.state ev in
let modifiers = Gdk.Convert.modifier state in
let button = GdkEvent.Button.button ev in
if button = 1 && List.mem `CONTROL modifiers then
  (* Ctrl+left click *) ...
else if button = 3 && List.mem `SHIFT` modifiers then
  (* Shift+right click *) ...

Тип списка модификаторов Gdk.Tags.modifier,

Другие вопросы по тегам