Компания Nokia представила релиз кросс-платформенного набора библиотек Qt 4.8. Дальнейшая работа, в основном, будет сосредоточена на подготовке ветки Qt 5.0, которая будет развиваться в рамках проекта Qt Project, переведённого на использование открытой модели разработки, подразумевающей участие сообщества при принятии решений. Дополнительно рассматривается возможность перевода Qt4 под покровительство Qt Project. Основные особоенности новой версии Qt 4.8: интеграция наработок проекта Lighthouse, в рамках которого проведена значительная реструктуризация GUI-стека и создан новый уровень абстракции QPA (Qt Platform Abstraction) для организации взаимодействия с графической подсистемой, позволяющий значительного упростить перенос Qt на новые оконные системы и устройства; поддержка многопоточного рендеринга с использованием OpenGL, в том числе разнесение по разным нитям кода работы с буферами, загрузки текстур и выполнения QPainter. Ранее OpenGL можно было использовать только в одном потоке; выделение отдельного потока для обработки HTTP-запросов, что позволяет увеличить отзывчивость приложения за счёт выноса сетевого кода из основного цикла обработки событий; оптимизация операций, связанных с доступом к файлам, и переработка стека для работы с файловой системой. В результате, за счёт сокращения обращений к системным вызовам и более грамотного использования кэширования, удалось заметно увеличить производительность ввода/вывода для всех платформ и увеличить скорость выполнения файловых операций; обновление компонента QtWebKit 2.2.1, позволяющего использовать браузерный движок WebKit из Qt-приложений. В новой версии произведена синхронизация кода с проектом WebKit (по состоянию на май 2011 года), добавлена поддержка работы со звуком и видео (теги audio/video), исправлено около 400 ошибок. Добавлена поддержка новых элементов HTML5, CSS3 и JavaScript, появившихся в свежих версиях браузеров Chrome и Safari: Canvas, HTML5 File API, типизированные массивы, DeviceMotion, Geolocation API, Web SQL, Application cache, Web Storage, CSS-анимация, CSS-трансформация, новый парсер JSON и т.д; обновление компонента Qt Quick 1.1 для разработки приложений с использованием технологии декларативного описания интерфейса. Технология Qt Quick объединяет в себе: базирующийся на JavaScript метаобъектный язык QML, позволяющий в CSS-подобном виде описывать пользовательские интерфейсы и их поведение; C++ библиотеку QtDeclarative, которая превращает описание QML в элементы QGraphicsScene; встроенную в интегрированную среду разработки Qt Creator систему визуального проектирования интерфейса и создания QML-проектов. QML-компоненты могут быть не только интегрированы в состав проектов на языке C++, но и работать в виде обособленных графических приложений, логика функционирования которых задана целиком на языке JavaScript. В новой версии добавлена поддержка языков с начертанием текста справа-налево, улучшенное кэширование изображений, поддержка улучшенной виртуальной клавиатуры, реализация элемента PinchArea для обеспечения управления жестами и добавление новых свойств в QML Elements; проведена подготовка к реструктуризации кода с целью его разбиения на дополнительные модули, которые смогут обновляться и поставляться независимо от других частей Qt (например, интенсивно развивающихся подсистемы QtWebKit и QtDeclarative получат возможность выпускать релизы значительно чаще); проведена чистка кода и подготовлены к удалению (помечены устаревшими) некоторые модули, среди которых Qt3Support, QPicture, QSound, QtSvg; добавлен IP Multicast API, существенно расширен API для обеспечения локализации.
Источник