我想检测用户单击按钮时是否按下ctrl。 “clicked”信号似乎没有向回调传递足够的信息来解决这个问题。
答案 0 :(得分:9)
如果您可以连接到button-press-event
或button-release-event
而不是clicked
,则传递给回调的event
可用于获取修饰符状态(使用{{ 3}})并检查是否按下了控制键。对于前者
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)
希望这有帮助!