Обзор графических библиотек C++ | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Разработчик на Spring Framework
-5%
Flutter Mobile Developer NoSQL iOS Developer. Basic
-10%
C++ Developer. Basic C++ Developer. Professional Android Developer. Professional Microservice Architecture Unity Game Developer. Professional Базы данных Node.js Developer React.js Developer Специализация Java-разработчик
-25%
Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect Специализация Administrator Linux
-25%
Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Обзор графических библиотек C++

Cplus_Deep_11.06_site-5020-ecd1fe.png

Одним из наиболее мощных и популярных языков программирования является C++. На нём ежедневно пишут сотни приложений, нередко использующих GUI. Но работа с графикой не всегда удобна для программиста, поэтому на помощь приходят графические библиотеки, делающие разработку графической части быстрее и удобнее. О них и поговорим.

SFML

1.jpg-20219-88298d.png Simple and Fast Multimedia Library — одна из наиболее быстрых и удобных библиотек для 2D-графики. У неё минимальные требования к уровню знаний C++, плюс она отличается лёгкостью освоения. С её помощью вы напишете полноценную программу всего за несколько дней. А первое графическое приложение «SFML works!» — всего за минуту. Также библиотека отличается кроссплатформенностью, работая под Windows, Linux и Mac.

SFML часто используется в небольших стартапах либо разработчиками, которые сами занимаются созданием игр. Инструмент популярен прежде всего потому, что не требует написания объёмного кода.

Qt

2-20219-e78eb8.png Это целый набор инструментов для проектирования GUI. Разумеется, можно писать и игры, но Qt привлекает больше своими достоинствами: удобство, быстрота, гибкость, кроссплатформенность. Библиотека доступна и на Windows, и на Linux, и на Mac, и на Windows Mobile, iOS и Android.

С помощью метаобъектного компилятора Qt расширяет C++, предоставляя дополнительные функции (к примеру, сигналы и слоты). Имеет платную службу технической поддержки и платную лицензию. Есть большой выбор IDE: QDevelop, Edyuk, QtDesigner, QtCreator. Доступна интеграция с Eclipse, XCode, Visual Studio.

Cairo

3-20219-14752b.png Используется для отрисовки векторных изображений под Windows, Mac OS, Linux. Применяется в браузерном движке Gecko, лежит в основе ряда ОС: MorphOS, AmigaOS. Если выбираете Cairo, будьте готовы к отсутствию ресурсов на русском языке.

Библиотека поддерживает взаимодействие с OpenGL-бэкендом с поддержкой GPU. Это, несомненно, открывает ряд полезных функций.

Cocos2D-X

4-20219-c288bc.png Кроссплатформенная библиотека, призванная упростить разработку игр для мобильных платформ. По кроссплатформенности схожа с Qt, но есть и другие плюсы: доступность, удобство, возможность создания отдельного конструктора игр, который основан на библиотеке Cocos Creator.

Прекрасно подходит, если нужно работать с анимацией и графикой в небольших объёмах, т. к. вся графика добавляется извне (на неё ссылаются из кода).

Учтите, что уроки на эту библиотеку есть только на английском.

Juce

1-20219-9f288d.jpg Кроссплатформенный фреймворк, который служит для создания плагинов и приложений на C++. На английском языке есть очень много документации по Juce, очень рекомендуют эту книгу.

Библиотека особенно популярна среди тех, кто разрабатывает аудио-софт, так как имеет набор оболочек-интерфейсов для создания аудио-плагинов.

wxWidgets

6-20219-2d3986.png Одна из старейших графических библиотек, предназначенных для отрисовки GUI. Главное достоинство — производительность. Если та же Qt использует низкоуровневый код только для кнопок и полос прокрутки, то wxWidgets использует для каждой системы свой код, благодаря чему элементы максимально похожи на системный стиль.

Другая важная особенность — использование «родных» графических элементов интерфейса ОС везде, где это возможно. Таким образом, можно говорить о существенном преимуществе для большинства пользователей, которые привыкают работать в определённой среде, и изменения интерфейса часто вызывают у них неудобства в работе.

SDL 2.0

7-20219-ab328c.png Кроссплатформенная 2D-библиотека для написания приложений (как правило, игр). Поддерживает Windows, Mac OS, Linux, Android, Windows Mobile, iOS. Характеризуется быстротой, надёжностью и лёгкостью в эксплуатации. Также в SDL реализованы профессиональные инструменты, предназначенные для работы со звуком, что является большим плюсом при реализации крупных проектов.

Остаётся добавить, что библиотека хорошо интегрируется с OpenGL и комбинируется с wxWidgets.

GTK+

8-20219-30d607.png Тоже очень известная графическая библиотека, которая широко применяется во многих системах. Сначала этот фреймворк задумывался как GIMP-компонент, но спустя 20 лет после выхода в свет первой стабильной версии библиотека нашла применение и в сотнях других приложений.

Сегодня практически не уступает Qt, поддерживая разные языки программирования. Кстати, это одна из немногих библиотек, которая взаимодействует с языком C.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
1 комментарий
0

Можно ли начинать изучение программирования десктопных приложений с библиотекой X11 Xlib. Я сегодня с помощью ее первое окошко в Ubuntu скомпилировал) Писал в Vim-е и сам компилил. Qt какие то ошибки выдавал, видать надо компилятору флаги где то прописывать, я еще не разобрался(

Для комментирования необходимо авторизоваться