2

这个问题解释了如何在 pygtk 中检测 ctrl+click。

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

4

1 回答 1

1

在lablgtk 中,有一个更直接的解决方案,虽然不是很明显。

从鼠标单击事件ev(类型GdkEvent.Button.t)中,您可以检测到诸如 ctrl+click/shift+clickGdkEvent.Button.stateGdk.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

于 2015-04-27T13:22:05.183 回答