Новость из категории: Информация

Зрелый интерфейс на Qt: горячие клавиши

Содержание:
1. Код модуля (Вы читаете данный раздел);
2. Пояснения к коду.
Зрелый интерфейс на Qt: горячие клавиши

Мы живем в счастливое время, когда разработчики Qt еще позволяют нам писать сложные программы, а не довольствоваться одной-двумя сенсорными кнопками. Программистов C++ еще не убедили пересесть с гоночного болида на трехколесный велосипед - я имею в виду, конечно же, javascript. Это разработчики KDE могут петь убаюкивающие песни, что QtQuick «хорошо для Plasma», но мне интересно, насколько это будет хорошо, допустим, для Scribus или Calligra - разделят ли их создатели такой оптимизм?..

Но вернусь к построению зрелого интерфейса. Он ориентирован на зрелых пользователей, а многие из них любят сами назначать «горячие клавиши» разным функциям. Одно время в GTK+ это было доступно по умолчанию, безо всякого труда со стороны программиста: пользователь подводил указатель мыши к пункту меню, нажимал сочетание клавиш, и оно закреплялось.

Но потом эту функцию отключили, и пришлось писать интерфейс для назначения сочетаний клавиш. В Qt тоже приходится писать, хотя не так уж много. Удобно вынести весь код в отдельный модуль, не связанный с основной программой, - тогда его можно будет переносить из проекта в проект без изменений.

Код модуля

Напишем модуль, который будет заниматься всем необходимым для поддержки «горячих клавиш». Какие стоят задачи? Во-первых, внутренний механизм назначения сочетания клавиш конкретному пункту меню.

Это значит, что мы должны иметь возможность найти экземпляр пункта меню по какому-то критерию, например по надписи на пункте меню. Получив экземпляр, мы можем назначить ему сочетание клавиш.

Вторая задача - сохранение назначенных сочетаний клавиш во внешний файл и возможность последующей загрузки этих данных.

Третья - механизм получения «нажатия» сочетания клавиш и отображение их в поле ввода, чтобы пользователь мог самостоятельно задать сочетание.

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

Файл shortcuts.h:
Зрелый интерфейс на Qt: горячие клавиши


Файл shortcuts.cpp:
Зрелый интерфейс на Qt: горячие клавиши

Зрелый интерфейс на Qt: горячие клавиши

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх