Spec-Zone.ru › GTK 4.0

Ввод с клавиатуры

Каждый GtkWindow поддерживает единственное местоположение фокуса (в свойстве “focus-widget”). Виджет фокуса — это целевой виджет для событий нажатия клавиш, отправленных в окно. Виджеты, у которых свойство “can-focus” установлено в TRUE, могут стать виджетом фокуса. Обычно это элементы управления вводом, такие как поля ввода или текстовые поля, но, например, кнопки также могут получить фокус.

Элементы управления вводом могут получить фокус, щелкнув по ним, но фокус также можно перемещать с помощью определённых событий нажатия клавиш (это известно как “навигация с клавиатуры”). GTK зарезервировал клавишу Tab для перехода к следующему элементу фокуса, а Shift-Tab — для возврата к предыдущему. Кроме того, многие контейнеры позволяют “навигацию по направлениям” с помощью клавиш со стрелками.

Многие виджеты можно “активировать” для запуска действия. Например, вы можете активировать кнопку или переключатель, щелкнув по ним, но вы также можете активировать их с клавиатуры, используя клавиши Enter или пробел.

Помимо навигации с клавиатуры, активации и непосредственного ввода в поля ввода или текстовые представления, виджеты GTK могут использовать события нажатия клавиш для активации “горячих клавиш”. Горячие клавиши обычно служат быстрым способом переключения фокуса или активации виджета, который в данный момент не имеет фокуса.

GTK традиционно поддерживает различные виды горячих клавиш:

  • Акселераторы — это любые другие горячие клавиши, которые можно активировать независимо от того, где находится фокус, и обычно они запускают глобальные действия, такие как Ctrl-Q для выхода из приложения.

  • Мемоники обычно активируются с модификатором Alt для буквы. Они используются в тех случаях, когда метка связана с элементом управления, и указываются подчёркиванием буквы в метке. В качестве специального случая, внутри меню (например, внутри GtkPopoverMenu), мемоники могут активироваться без модификатора.

  • Связки клавиш специфичны для отдельных виджетов, такие как Ctrl-C или Ctrl-V в поле ввода для копирования или вставки из буфера обмена. Они активируются только когда виджет имеет фокус.

GTK обрабатывает акселераторы и мемоники на глобальном уровне, во время фазы захвата, а связки клавиш — локально, во время целевой фазы.

Под капотом все горячие клавиши представлены экземплярами GtkShortcut, и они управляются GtkShortcutController.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/ch05s03.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API