Могу ли я сделать так, чтобы в Gtk для мнемоники Button не требовалась маска "alt"? - PullRequest
1 голос
/ 31 января 2010

У меня есть 6 Button с, помеченные от "_0" до "_5". Я хотел бы, чтобы каждая кнопка была нажата, когда пользователь нажимает соответствующую цифровую клавишу. Прямо сейчас они должны нажать Alt + соответствующую цифровую клавишу.

Я могу обойти это, дав каждой кнопке Акселератор, но это не совсем то же самое. На ускорителях, как только кнопка нажата, срабатывает сигнал кнопки Clicked. При использовании мнемоники кнопка нажимается при нажатии клавиши, и сигнал Clicked не срабатывает до тех пор, пока кнопка не будет отпущена. Я предпочитаю это, потому что это помогает пользователю видеть, что происходит.

Можно ли как-нибудь узнать поведение мнемоники, но не требуя клавиши Alt?

1 Ответ

1 голос
/ 31 января 2010

Вы можете сделать так, чтобы окно gtk перехватывало ключевые события с помощью настроек маски событий в классе окна. Я не могу быть более конкретным, чем обратные вызовы и типы ключей, потому что я использую GTKmm (привязки C ++), но подход должен быть похожим. В основном, когда вы ловите нужное ключевое событие в вашем окне, вы можете вызвать нажатие кнопки в коде. Однако окно должно быть выделено (в фокусе).

...