在 lablgtk 中检测 Ctrl+click 事件
Detecting a Ctrl+click event in lablgtk
This question 解释了如何在 pygtk 中检测 ctrl+click。
它也适用于 Lablgtk 吗?或者有更简单的方法吗?
在 lablgtk 中,有一个更直接的解决方案,虽然不是很明显。
从鼠标单击事件 ev
(类型 GdkEvent.Button.t
),您可以检测事件,例如 ctrl+click/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
。
This question 解释了如何在 pygtk 中检测 ctrl+click。
它也适用于 Lablgtk 吗?或者有更简单的方法吗?
在 lablgtk 中,有一个更直接的解决方案,虽然不是很明显。
从鼠标单击事件 ev
(类型 GdkEvent.Button.t
),您可以检测事件,例如 ctrl+click/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
。