Обнаружение события нажатия 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
,