Qt 5.0 перешёл на стадию бета-тестирования

Компания Digia совместно с сообществом Qt Project представила бета-версию Qt 5.0, первого значительного выпуска за последние семь лет, развиваемого при непосредственном участии сообщества в рамках нового полностью открытого процесса разработки и управления проектом. Несмотря на ряд существенных улучшений и изменений, Qt 5 сохраняет базовую обратную совместимость с прошлыми выпусками (удалён ряд давно устаревших элементов), поддерживает в полной мере средства для создания Qt-программ на языке C++ и содержит почти все компоненты Qt 4, большинство модулей из бывшего Qt Mobility и некоторые экспериментальные элементы из Qt Labs.

Из новых веяний в Qt 5 можно отметить смещение акцента в сторону использования для написания приложений средств декларативного описания интерфейса с определением логики взаимодействия с пользователем на языке JavaScript, в то время как применение C++ позиционируется для реализации критичных ко времени выполнения или излишне сложных частей программы, а также для создания новых модульных бэкендов для Qt Quick.

Ключевые изменения Qt 5:

  • Модульная структура репозитория. Многие из подсистем Qt разрабатываются разными группами разработчиков, развиваются с повышенной интенсивностью или плотно зависят от сторонних проектов. При грамотном разбиении фреймворка на модули, подобные подпроекты смогут обновляться и поставляться независимо от других частей Qt. Модульная организация репозитория позволит обеспечить сборку отдельных библиотек без загрузки и пересборки всех зависимостей, а также независимое использование каждой библиотеки, т.е. в разработчики получат возможность обособлено использовать только те компоненты Qt, которые им необходимы. Разработчики интенсивно развивающихся подсистем QtWebKit и QtDeclarative получат возможность не ждать когда подтянется другой код и выпускать релизы значительно чаще. Кроме того, модульная структура существенно упростит приём в состав Qt модулей, созданных сторонними проектами, например, проект KDE намерен добиваться интеграции в Qt некоторых своих библиотек общего назначения. Ожидается, что разбиение на модули будет длительным и постепенным процессом, который будет продолжен и после выхода Qt 5.0.
  • Перевод всех портов на использование уровня абстракции Qt Platform Abstraction layer (QPA), основанного на наработках проекта Lighthouse. QPA значительно упрощает перенос Qt на новые оконные системы и устройства, так как он изначально оперирует более абстрактными категориями, фундаментально отличаясь от ранее используемых средств интеграции с оконными системами. Например, уже написаны бэкенды для QNX, Android и iOS. В настоящее время реализация QPA уже входит в состав Qt 4.8, в качестве замены QWS/Qt Embedded, но в Qt 5 данная прослойка будет задействована для всех платформ, что потребовало существенно переработки огромной части кода, связанного с обеспечением поддержки различных платформ. Из полностью поддерживаемых бета-версией платформ отмечены: X11/Linux, Windows, Mac OS X, Embedded Linux и Windows Embedded.
  • Изменение архитектуры графического стека и увеличение производительности графических операций. В качестве центрального элемента новой архитектуры для Qt Quick выступает QML Scenegraph, работающий поверх OpenGL. Для работы новой графической архитектуры Qt 5 система должна поддерживать как минимум OpenGL (ES) 2.0. В качестве примера производительности Qt 5 приводится способность вывода контента со скоростью 60 кадров в секунду на одноплатном компьютере Raspberry Pi.

    Поддержка QPainter сохранена для выполнения расширенных функций, но ограничена возможностью использования бэкенда программной растеризации вывода (Raster), бэкенда OpenGL и бэкенда для вывода на печать и создания PDF. Поддержка привязанных к платформам бэкендов, таких как X11 и CoreGraphics, прекращена. QWidgets теперь отображается поверх графической сцены, а не наоборот, как реализовано в версии Qt 4, что позволило перейти в Qt 5 на принципиально новую графическую архитектуру, сохранив при этом совместимость с Qt 4.

    В QtGui добавлен набор классов QOpenGL*, заменивших собой устаревшие классы QGL*, которые пока оставлены для обеспечения совместимости. Также представлен класс QGuiApplication, которые заметно легче классов QApplication и QWindow при выполнении задач обработки корневой области на экране.

  • Выделение всех связанных с QWidget возможностей в отдельную библиотеку. Несмотря на то, что основанные на QWidget классы чрезвычайно важны для существующих приложений, общая тенденция ведёт к тому, что все пользовательские интерфейсы должны быть реализованы на QML и Qt Quick. Отделение связанных с QWidget функций в отдельную библиотеку позволит в долгосрочной перспективе сохранить чистоту архитектуры Qt 5.
  • Переработанная реализация Qt Quick 2, которая разделена на отдельные модули, связанные с графической частью и с компонентами поддержки языков QML и JavaScript. Обеспечивающие выполнение JavaScript классы (QJSEngine и QJSValue) теперь базируются на JavaScript-движке V8, развиваемом при участии компании Google и распространяемом под лицензией BSD. В движок QML также внесены значительные оптимизации производительности и связанные с языком улучшения, при сохранении базовой совместимости. Модуль Qt Quick включает в себя реализацию Scenegraph на базе OpenGL и все ранее поддерживаемые в Qt 4.x базовые возможности. Дополнительно добавлена поддержка графических эффектов, создаваемых при помощи шейдеров OpenGL. Для обеспечения обратной совместимости в виде модуля Qt Quick 1 будет поставляться полностью совместимая с Qt 4.x реализация Qt Quick.
Кроссплатформенность на все 100% - с использованием уровня абстракции Qt Platform Abstraction layer (QPA); Qt и HTML5 – новый Qt WebKit и JavaScript, интегрированная поддержка JSON, улучшена поддержка облачных сервисов; Простота использование Qt – Qt Quick, Qt Creator, эмулятор, развёртывание (установка) на устройстве, документация, поддержка сообщества – и ,естественно, полная Qt Commercial поддержка – все это в релизе 5.0.0. Мы хотим, чтобы Qt Commercial 5 поддерживал все платформы, которые важны для наших клиентов. Несколько недель назад мы уже обращались к вам с просьбой поделиться вашими планами в отношении различных поддерживаемых в рамках Qt Commercial платформ. Мы будем активно использовать полученную информацию для расширения списка этих поддерживаемых платформ. В рамках релиза Qt Commercial 5.0 бета – следующие платформы уже поддерживаются на должном уровне: Windows Mac OS X X11/Linux Embedded Linux Windows Embedded Скорее всего, список именно этих платформ будет объявлен как «поддерживаемые» в финальном релизе 5.0.0, возможно – с некоторыми дополнениями. В данный момент мы работаем с нашими партнерами по RTOS (ОСРВ – Операционные Системы Реального Времени) платформам, чтобы включить их поддержку в Qt 5. В будущем, на основе отзывов и пожеланий наших клиентов – список поддерживаемых платформ будет расширяться. Переход на Qt 5 Qt 5 включает все самое лучшее из Qt 4, плюс дополнительные, новые возможности. Это означает полную совместимость Qt 5 с Qt 4 – огромное преимущество для разработчиков: они могут плавно перейти к разработке своих приложений – из-под Qt 5 – с использованием текущей функциональности Qt 4. А когда придет время для создания новых приложений с новыми функциональными возможностями, использование Qt 5 позволит осуществить и это. В связи с изменениями в модульной структуре конфигурация вашего проекта должна быть слегка изменена для соответствия конфигурации Qt 5. Можно создавать исходный код таким образом, чтобы он без проблем собирался как из-под Qt 4, так и из под Qt 5. В папке qtbase/bin разработчикам предоставлен очень полезный скрипт fixqt4headers.pl – используя его, можно провести автоматические изменения в директиве #include<> – для переименования названий модулей. После того как вы успешно перенесли ваш существующий проект на Qt 5, можно постепенно вводить новый функционал, предоставляемый Qt 5-ым. Одним из пунктов в списке нового функционала стоит Qt Quick 2 и измененный графический стек с использованием аппаратного ускорения на базе OpenGL. Если в своем приложении вы используете динамичный и интерактивный UI, то гораздо проще будет создавать его с использованием Qt Quick, чем с использованием виджетов (Widgets) и C++. Но, как уже было сказано, виджеты полностью поддерживаются в Qt 5 – как и C++ :) Qt Quick – это отличный способ создания интерактивных пользовательских интерфейсов с логикой, реализованной на C++ - также как и прежде. Новые расширения (add-in) для Visual Studio Также для Qt 5 мы создали новую версию расширения (add-in) для Visual Studio. Этот add-in также пока в стадии «бета», но, используя его, вы уже можете опробовать Qt5 с использованием Visual Studio. Данный add-in создан на базе существующего расширения для Visual Studio, с изменениями для поддержки новой модульной структуры Qt5. Теперь Qt Essentials и дополнительные модули отображаются как в настройках проекта (Project Settings), так и в Мастере Проекта (Project Wizards). Пользователи могут подключать и отключать модули как и раньше. Модули, не установленные в системе, отображаются как недоступные в списке Add-on modules. Создание новых проектов под Qt 4 не поддерживается, как минимум в данной бета версии. Существующие Qt4 проекты могут быть скомпилированы и слинкованы (связаны). Данная бета предназначена для использования в Visual Studio 2008 и 2010. Visual Studio 2005 более не поддерживается. Поддержка VS2012 планируется в следующих релизах расширений для VS. Следующие шаги В данную бета-версию, доступную единым инсталлятором на портале Qt Commercial Customer Portal http://www.digia.com/en/Qt/Log-in-Customer-Portal/, мы включили все доступные модули скопом (все вместе). Для финального релиза мы предоставим возможность выбора необходимых модулей на основе модульной структуры, а также установку с использованием Qt Commercial SDK. Мы планируем обеспечить возможность использования Qt Commercial версий 4.8 и 5.0 с одним и тем же SDK – что, мы надеемся, будет наиболее удобным способом для пользователей SDK. Это также даст дополнительные преимущества – например, выравнивание сторонних, дополнительных компонент. Подобные улучшения мы реализуем в toolchain-е (набор пакетов программ) для embedded Linux, что будет большим подспорьем как для пользователей 4.8, так и для пользователей версии 5.0. (http://www.digia.com/en/Blogs/Qt-blog/Samuli-Pippo/Dates/2012/7/Updating-Embedded-Linux-Toolchain-for-Qt-Commercial-SDK/). В наши планы после бета-версии Qt 5.0 входит также предоставление Qt 5 релизов через онлайн SDK, что позволит легче управлять ими и иметь своевременные обновления. Мы проведем небольшой опрос среди тех, кто скачает Qt Commercial 5.0 бета-версию. Так что вперед, скачивайте, пробуйте – и дайте нам знать, что вы думаете об этом! Получить бета-версию Qt Commercial 5.0 Если вы уже являетесь держателем лицензии Qt Commercial, вы

Источник:
http://www.opennet.ru/opennews/art.shtml?num=34701

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>