The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Началось альфа-тестирование Qt 5"
Отправлено opennews, 04-Апр-12 00:26 
Разработчики из компании Nokia объявили (http://labs.qt.nokia.com/2012/04/03/qt-5-alpha/) о выпуске первой альфа-версии Qt 5 (http://qt-project.org/wiki/Qt-5-Alpha), первый значительный выпуск, развиваемый (http://www.opennet.ru/opennews/art.shtml?num=32103) при непосредственном участии сообщества в рамках нового полностью открытого процесса разработки и управления проектом. Qt 5 позиционируется в качестве фундамента для реализации новых путей разработки приложений. При сохранении всех инструментов по созданию Qt-программ на языке C++, в Qt 5 акцент смещается в сторону использования C++ в основном для создания функциональности модульных бэкендов для Qt Quick, т.е. для реализации критичных ко времени выполнения или излишне сложных частей программы, в то время как простые  Qt-приложения могут быть написаны полностью  на JavaScript, без использования C++.


В ветке Qt 5.x отмечается (http://wiki.qt-project.org/Transition_from_Qt_4.x_to_Qt5) нарушения совместимости с Qt 4.x на бинарном уровне и частично на уровне исходных текстов. К моменту релиза планируется подготовить набор средств для упрощения адаптации кода существующих проектов для Qt 5.x. Тем не менее, нарушающие совместимость изменения в основном связаны с чисткой устаревших компонентов, поэтому адаптация современных проектов потребует минимальных изменений. Например, в текущем виде единая кодовая базе Qt Creator успешно собирается с использованием Qt 4.x и Qt 5.


Ключевые архитектурые изменения Qt 5:

-  Перевод всех портов на использование уровня абстракции Qt Platform Abstraction layer (QPA), основанного наработках проекта Lighthouse (http://labs.qt.nokia.com/category/labs/lighthouse/). QPA значительно упрощает перенос Qt на новые оконные системы и устройства, так как он изначально оперирует более абстрактными категориями, фундаментально отличаясь от ранее используемых средств интеграции с оконными системами. Например, уже написаны бэкенды для QNX, Android и iOS. В настоящее время реализация QPA уже входит в состав Qt 4.8, в касестве замены QWS/Qt Embedded, но в Qt 5 данная прослойка будет задействована для всех платформ, что потребовало существенно переработки огромной части кода, связанного с обеспечением поддержки различных платформ.
  
-  Изменение архитектуры графического стека и увеличение производительности графических операций. В качестве центрального элемента новой архитектуры для Qt Quick выступает QML Scenegraph, работающий поверх OpenGL. Для работы Qt 5 система должна поддерживать как минимум OpenGL (ES) 2.0.

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


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


-  Модульная структура (http://www.opennet.ru/opennews/art.shtml?num=28425) репозитория. Многие из подсистем Qt разрабатываются разными группами разработчиков, развиваются с повышенной интенсивностью или плотно зависят от сторонних проектов. При грамотном разбиении фреймворка на модули, подобные подпроекты смогут обновляться и поставляться независимо от других частей Qt. Модульная организация репозитория позволит обеспечить сборку отдельных библиотек без загрузки и пересборки всех зависимостей, а также независимое использование каждой библиотеки. Разработчики интенсивно развивающихся подсистем QtWebKit и QtDeclarative получат возможность не ждать когда подтянется другой код и выпускать релизы значительно чаще. Кроме того, модульная структура существенно упростит приём в состав Qt модулей, созданных сторонними проектами, например, проект KDE намерен добиваться интеграции в Qt некоторых своих библиотек общего назначения. Ожидается, что разбиение на модули будет длительным и постепенным процессом, который будет продолжен и после выхода релиза 5.0.

-  Выделение всех связанных с QWidget возможностей в отдельную библиотеку. Несмотря на то, что основанные на QWidget классы чрезвычайно важны для существующих приложений, общая тенденция ведёт к тому, что все пользовательские интерфейсы должны быть реализованы на QML и Qt Quick. Отделение связанных с QWidget функций  в отдельную библиотеку позволит в долгосрочной перспективе сохранить чистоту архитектуры Qt 5.

Новые возможности:


-  Qt Core:

-  Класс QStandardPaths для определения стандартного местоположения на текущей платформе таких данных, как мультимедиа файлы и документы;-  В состав включен парсер формата JSON  и оптимизированное для более высокой скорости обработки бинарное представление для данных JSON;-  Поддержка определения meme-типа как по расширению, так и по содержимому;-  Включение в состав движка для обработки регулярных выражений, полностью совместимых с Perl;-  Переписаны и оптимизированы для увеличения производительности многие структуры данных;-  Добавлена поддержка стандарта C++11, но сохранена возможность сборки и при помощи компиляторов, совместимых с C++98.

-  Qt Gui: Как было отмечено выше, классы QWidget  вынесены в отдельную библиотеку QtWidgets. В QtGui добавлена поддержка OpenGL  и возможность работы через класс QWindow с поверхностями корневого экрана;
-  Qt Network: Добавлена поддержка выполнения DNS-запросов. Удалены классы QHttp и QFtp, которые вынесены в отдельные модули;-   Qt Widgets: Осуществлено портирование на новую архитектуру QPA с сохранением полной совместимости с Qt 4.x;
-  Qt Quick: Полностью совместимая с Qt 4.x реализация Qt Quick оформлена в виде модуля Qt Quick 1, который подготовлен только для обеспечения обратной совместимости и не будет развиваться в будущем. Реализация Qt Quick для Qt 5 разделена на отдельные модули, с графической частью и с компонентами поддержки языков QML и JavaScript. Связанные с выполнением JavaScript классы (QJSEngine и QJSValue) теперь базируются на движке V8, позволившем достигнуть более высоких результатов производительности. В движок QML также внесены значительные оптимизации производительности и связанные с языком улучшения, при сохранении базовой совместимости. Модуль Qt Quick включает в себя реализацию Scenegraph  на базе  OpenGL и все ранее поддерживаемые в Qt 4.x базовые возможности. Дополнительно добавлена поддержка графических эффектов, создаваемых при помощи шейдеров OpenGL.

-   Добавлены модули Qt 3D и Qt Location для интегарции 3D-контента с Qt и для взаимодействия с GPS и другими сервисами  определения местоположения;-  C++ API Qt WebKit не изменился по сравнению с Qt 4.x, но осуществлён переход на более новую версию движка WebKit, что привело к улучшению поддержки технологий HTML 5.


URL: http://blog.qt.nokia.com/2012/04/03/qt-5-alpha-is-here-provi.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=33527

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру