Определить Ctrl+ нажмите на кнопку в Pygtk

Я хочу определить, удерживается ли Ctrl, когда пользователь нажимает кнопку. Сигнал "нажал", кажется, не передает достаточно информации обратному вызову, чтобы решить это.

1 ответ

Решение

Если вы можете подключиться к любому 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)

Надеюсь это поможет!

Другие вопросы по тегам