如果你可以连接到button-press-event或button-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)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!