Илья Ковалевский "Что такое Qt и что с ним можно...

Preview:

Citation preview

One framework to rule them all

Qt

Что такое Qt?

Qt (произносится «къют») — кросс-платформенный инструментарий разработки ПО на языке программирования C++. Кроме того, доступны различные биндинги для Python, Ruby, Java, PHP и других. Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

Возможности Qt

Qt – это не GUI фреймворк

● Бытует мнение, что Qt – это только фреймворк для разработки графического интерфейса; что на большее он не годится. Это – ложь.

● Qt – это целый комплекс компонентов, которые упрощают разработку ПО, так называемых модулей.

● Среди основных модулей Qt находятся: QtCore, QtWidgets, QtScript, QtXml, QtSql, QtNetwork, и многие другие.

Qt Project и Digia

● В данный момент поддержкой (L)GPL версией Qt занимается Qt Project – свободный проект разработчиков со всего мира.

● Это не мешает Digia держать коммерческую версию продукта и развивать проект в рамках Qt Project.

● Ранее права на Qt пренадлежали Trolltech, позже Nokia, а с 2012 года по настоящее время – компании Digia.

● Проект регулярно проводит конференции Qt Developer Days и Qt Contributors' Summit.

А как он поможет мне?

● MOC – мета-объектный компилятор

● QtCore – огромная библиотека классов для всего

● QML – концептуально новый подход к разработке User Interface

● OpenGL – полная поддержка и интеграция

● … и уйма других компонентов, которые могут нехило облегчить вам жизнь

We need to go deeper...

QML

QML in Creator

Тот же самый QML

Мета-объектный компилятор

MOC очень хорош. Сложно представить Qt без него. На нем-то все и завязано.

Примерно вот так и выглядит класс-пустышка на Qt c использованием некоторых плюшек MOC (об одной из них пойдет речь далее). На деле, этот хедер генерирует основу для программы с GUI.

Просто, не так ли?

Сигнально-слотовое соединение

Чего стоит кросс-платформеность?

Помоги мне, помоги мне...

Qt Creator

Qt Designer

Qt Linguist

Qt Assistant

Qt Creator

Qt Designer

Qt Assistant

И кто его использует?

KDE

Google Earth

VLC Media Player

Oracle Virtual Box

Q&A

Вопросики.

Recommended