检测ctrl +单击pygtk中的按钮

Pet*_*ham 2 gtk pygtk

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

ano*_*ard 8

如果你可以连接到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)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!