Qt — по-настоящему замечательная библиотека, позволяющая перенести программу на другую операционную систему простой перекомпиляцией. И если разработчик не использовал чего-нибудь ОС-специфичного, она таки будет выглядеть и работать почти как родная. После разработки основного функционала, при которой различия минимальны, наступает стадия полировки и доводки — об этом и будет рассказывать настоящий цикл статей.
Сейчас информации по теме в рунете мало, она разобщена, поверхностна, или уже устарела. В англоязычном варианте есть официальная документация по Qt и Stack Overflow, однако мне кажется, что для изучения всё же больше подходит формат статей с примерами из практики. По ходу я постараюсь давать ссылки на старые посты (будут помечены"*") по соответствующим темам, чтобы добавить систематизации существующему материалу.
Итак, есть весьма объемный обзорный пост о возможностях Qt, по большей части он актуален и сегодня. Можно выделить два основных направления: поведение и внешний вид. Как программа должна выглядеть и вести себя — описано в соответствующих H I G, и большую часть работы библиотека берет на себя, вплоть до того, что меняет порядок кнопок в стандартных диалогах. Другую же часть, более тонкие и специфичные моменты — придется реализовывать хотя и средствами Qt, но все равно вручную. Например применение изменений в Windows обычно происходит при нажатии на кнопку, в OS X — мгновенно. С отображением тоже все неплохо — приложения не режут глаз, не выбиваются из общего стиля, однако проблем хватает, особенно в OS X: откровенно страшный стандартный календарь, кривые градиенты заголовков таблиц, устаревший groupBox — вот неполный список кандидатов на полировку. А ведь еще дисплеи высокой четкости, глобальное меню, Dock, уведомления. Ограничения отображения при drag-n-drop в Windows, квест с установкой банальных иконок в Linux. Отдельным пунктом идет подготовка к распространению, которая тоже весьма специфична.
Содержание:
- Установка иконки приложения
- Кастомизация дизайна с QSS
- OS X: Retina и остальное
- ...
- Сборка дистрибутивов для распространения
P.S. Список тем наверняка пополнится, если есть предложения, постараюсь рассмотреть и их.
Автор: Zifix