2

我想检测用户单击按钮时是否按住 ctrl。'clicked' 信号似乎没有向回调传递足够的信息来解决这个问题。

4

1 回答 1

10

如果您可以连接button-press-eventbutton-release-event代替clicked,则event传递给回调的参数可用于获取修饰符状态(使用get_state)并检查是否按下了控制键。例如。

def button_release_callback(widget, event, data=None):
    if event.get_state() &  gtk.gdk.CONTROL_MASK:
        print "Ctrl held"
    else:
        print "Ctrl not held"
...
button.connect("button-release-event", button_release_callback)

希望这可以帮助!

于 2012-11-14T05:48:17.707 回答