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

Qt 5: изменения в C++ API и модулях

СОДЕРЖАНИЕ:
1. Первые впечатления;
2. Изменения в C++ API и модулях (ВЫ ЧИТАЕТЕ ДАННЫЙ РАЗДЕЛ);
3. Сборка.
Qt 5: изменения в C++ API и модулях

Вообще сложилось впечатление, что разработчики Qt 5 приложили много усилий, чтобы программисты С++ бросили портирование и писали только на QML: слишком уж много ненужных изменений в C++ API.

Например, функция QInputDialog::getInt() вместо QInputDialog::getInteger(). Каков источник этой принципиальности? А ведь в коде придется менять...

В QHeaderView вместо setMovable(bool movable) теперь надо использовать QHeaderView:: setSectionsMovable, и подобные переименования многочисленны.

Как известно, разработчики Qt разнесли разные части API по модулям. (Раньше тоже было так, но это не объявлялось новшеством.) Однако толку в такой системе мало, поскольку одни модули не работают без других. Разве что WebKit можно со своими программами не «таскать», но и раньше так было.

Что включили в ядро Qt, в модуль Qt Core? Кажется, ядро должно быть минимальным, содержать только важнейшие функции для работы других компонентов библиотеки и пользовательских программ. Но в Qt 5 это переосмыслили: в ядро поместили целый арсенал функций работы с анимацией (даже в игровой библиотеке SDL такого нет), а также JSON, XML... Правильная ли это модульность?

Из прежнего модуля Qt GUI выделили отдельный виджет - QtWidgets. Для графической подсистемы Qt теперь так или иначе нужен OpenGL, причем, по словам разработчиков, лучше OpenGL 2.0 либо Open GL ES 2.0.

Для Windows делается финт: предлагается использовать библиотеку ANGLE, которая переводит вызовы OpenGL в DirectX: чтобы собрать саму ANGLE, вам понадобится DirectX SDK.

К слову о виджетах и стилях оформления: В Qt 5 нам оставили все стили для Windows, но устранили Linux-стили вроде Cleanlooks - взамен появился универсальный для всех платформ Fusion.

Модуль Qt SVG был оставлен в Qt 5 по настойчивым просьбам трудящихся, но разработчики Qt заявили, что развивать его не будут, предложив взять поддержку SVG из WebKit. Модуль Qt XML остался, но стал deprecated - теперь надо пользоваться парсером из ядра.

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

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

Поделиться

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

Комментарии

^ Наверх