检测Ctrl+;单击lablgtk中的事件

检测Ctrl+;单击lablgtk中的事件,gtk,mouseevent,ocaml,lablgtk,Gtk,Mouseevent,Ocaml,Lablgtk,解释如何在pygtk中检测ctrl+单击 它是否也适用于Lablgtk?或者有更简单的方法吗?在lablgtk中,有一个更直接的解决方案,尽管它不是很明显 从鼠标单击事件ev(类型为GdkEvent.Button.t)中,您可以检测诸如使用GdkEvent.Button.state和Gdk.Convert.modifier按ctrl+click/shift+click等事件,如以下示例所示: let state = GdkEvent.Button.state ev in let modifier

解释如何在pygtk中检测ctrl+单击


它是否也适用于Lablgtk?或者有更简单的方法吗?

在lablgtk中,有一个更直接的解决方案,尽管它不是很明显

从鼠标单击事件
ev
(类型为
GdkEvent.Button.t
)中,您可以检测诸如使用
GdkEvent.Button.state
Gdk.Convert.modifier
按ctrl+click/shift+click等事件,如以下示例所示:

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