Evgenii Legotckoi
Мамыр 27, 2018, 3:46 Т.Қ.

Qt 5.11 шығарылымы

Немного опережая ранее запланированный график, сегодня (22 мая 2018 г.) был выпушен новый релиз Qt 5.11. Как всегда, в новый релиз добавлено большое количество новых функций и исправлено много багов предыдущих версий. Давайте рассмотрим (расскажем) о наиболее интересных новых функциях (возможностях).


Qt Core и Network

Много работы было сделано над мелкими деталями в Qt Core. К примеру, некоторые из классов инструментов получили новые перегружаемые rbalue ссылки аргументов, также были добавлены отсутствующие методы для лучшей совместимости с STL. Элементы модели получили несколько новых функций.

В Qt Network, ALPN и HTTP/2 теперь поддерживают iOS. QNetworkRequest получил Http2DirectAttribute для запуска соединения HTTP/2 без предварительного согласования.

Одним из наибольших обновлений стала поддержка unicode в Qt Core. QChar, QString, QTextBoundaryFinder и алгоритм двунаправленного текста теперь полностью совместимы с Unicode 10.

Qt GUI и Widgets

Большое внимание в Qt 5.11 уделили поддержки доступа на Windows. Он был полностью изменен и теперь основан на Microsoft UI Automation, а не на старой Microsoft Active Accessibility framework, что существенно улучшило работу со специальными возможностями Windows. Много работы было проведено и над улучшением внешнего вида на Windows для лучшей поддержки дисплеев с высоким разрешением. Диалог печати на Linux был переработан и теперь показывает улучшенную поддержку всех предоставляемых вариантов CUPS. Qt Widgets получил многочисленные исправления и получил поддержку быстрого выделения текста мышью в QLineEdit. Всё это является хорошим обновлением для всех пользователей.

Qt QML

Большие изменения произошли и с движком QML. Полностью переписан конвейер компилятора, который анализирует и компилирует QML. Новый конвейер принес улучшения производительности и поддерживаемости.

Новый конвейер компилятора всегда компилирует QML в независимом от платформы байт-коде. Движок кэширует этот байт-код в файлы qmlс. Вы также можете создать байт-код заранее, используя функцию компилятора qmlcompiler (которая теперь также доступна в версии с открытым исходным кодом).

Новый интерпретатор байт-кода значительно улучшил производительность по сравнению со старой версией. Тестовые задания проходят за 80-90 % времени от JIT Qt 5.10. Был добавлен новый JIT-компилятор, который заметно лучше старой версии.

Qt Quick and Qt Quick Controls

В Qt Quick была расширенна поддержка загрузки сжатых текстур в элементы изображения и расширена поддержка форматов .ktx and .pkm. Эта функция помогает сократить время загрузки и потребление памяти, сохраняя снимки в формате, который напрямую направляются в GPU.

Qt Quick Controls 2 получил множество небольших функций и исправлений ошибок. Например авто-поворот свойств для кнопок, улучшено позиционирование прокрутки и улучшена поддержка стилей для SpinBoxes.

Qt Location

В Qt Location так же произошло множество изменений. Наибольшие изменения связаны с экспериментальной поддержкой для turn-by-turn навигации. Но есть и другие изменения. QtLocation теперь имеет экспериментальный API для создания объектов карты, которые не привязаны к QQuickItem. Производительность объектов MapPolyline значительно улучшилась, и теперь слои работают в сочетании с элементами карты. Кроме того сделан расширяемый API маршрутов и позиционирования и добавлены новые путевые точки. Наконец, плагин MapBox получил поддержку геокодирования и позиционирования.

Qt Webengine

Как стало стандартом в релизах Qt, была обновлена версия Chromium под QtWebengine до Chromium 65. Кроме того, теперь поддерживаеются встроенные DevTools, не требуя использования отдельного браузера, устанавливаемого фильтра cookie и разрешающих квот.

Qt для разработки устройств

Все новые функциональные возможности, упомянутые выше, конечно, также доступны в Qt для создания устройства. Кроме того, идёт работа над улучшением некоторых встроенных функций.

Одной из новых функций здесь является поддержка аппаратных графических слоев, доступных в настоящее время в качестве предварительного просмотра технологии для платформ, поддерживающих аппаратное композитирование VSP2. Это можно будет использовать для функций, как видео подложки (по-слоям) и помогает улучшить производительность и понизить энергопотребление. Так же в Qt Company стремятся расширить количество поддерживаемых платформ и аппаратных комбинаций в следующих выпусках.

Qt SerialBus получила усовершенствованную поддержку CAN шины. Модуль KNX получил несколько крупных обновлений. Кроме того, Qt 5.11 будет иметь новый модуль, который добавляет поддержку OPC/UA. Этот модуль доступен для предварительного просмотра технологии в Qt 5.11.

Другие улучшения

qdoc теперь использует libclang для анализа C++, что дает улучшенную поддержку современного C++ в документации. Qt Serialbus и Bluetooth теперь улучшили поддержку шин CAN и BTLE. Из версии Qt 5.11 была удалена поддержка некоторых старых компиляторов и платформ. MSVC2013, QNX 6.6 и mac OS 10.10 больше не поддерживаются.

Qt 3D и Qt 3D Studio

Идёт тяжелая работа над вторым релизом Qt 3D Studio. Этот второй выпуск поставляется с полностью переписанной средой выполнения, которая будет основана на qt3d. Это даст всем лучшую и более глубокую интеграцию в остальную часть Qt при использовании Qt 3D Studio для создания 3D интерфейсов. Благодаря этой работе Qt 3D также получила множество новых функций, улучшений производительности и исправлений ошибок. Qt 3D Studio 2.0 в настоящее время находится на бета-тестировании, и Qt Company прилагает все усилия, чтобы получить окончательный релиз в течение следующих нескольких недель.

Qt для Webassembly и Python

С Qt для Webassembly идёт работа над заполнением последнего большого пробела в кросс-платформенной истории, позволяя пользователям ориентироваться на веб и браузеры как платформу для приложений Qt. Первая версия была выпущена в качестве предварительного просмотра технологии. Кроме того, к вышесказанному, Qt Company активно работает над поддержкой Qt на Python. Первый выпуск планируется на июнь.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Ruslan Polupan
  • Мамыр 29, 2018, 4:04 Т.Қ.

Здорово.

В связи этим вопрос.
Как наиболее быстро переходить на новые версии Qt?
Кроме удаления старой версии. установки новой, переборки библиотек есть еще варианты?
Evgenii Legotckoi
  • Мамыр 29, 2018, 4:17 Т.Қ.

Статика что-ли?
Обычно я просто ставил новую версии из Maintenance Tool, добавлял комплект сборки, пересобирал проект, если во время компиляции проблем не было, то удалял старую версию.

А как иначе собственно? ))
Ruslan Polupan
  • Мамыр 29, 2018, 4:25 Т.Қ.

Статика. Просто с онлайн установкой постоянные проблемы со связью с репозитроиями.

Evgenii Legotckoi
  • Мамыр 29, 2018, 5:15 Т.Қ.

Пересобирать придётся в любом случае. Вообще, насколько знаю, можно и просто git-репозиторий Qt использовать. Если вышел update, то сделать fetch, переключиться на нужную ветку и пересобрать статику. Думаю, что так вполне можно сделать.

Ruslan Polupan
  • Мамыр 29, 2018, 5:44 Т.Қ.

Я имел ввиду не статическую сборку а оффлайн инсталятор. Онлайн уж очень часто достает вот таким:
Не удалось загрузить архив «http://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_5110_src_doc_examples/qt.qt5.5110.src/5.11.0-0-201805181208qtactiveqt-everywhere-src-5.11.0.7z»: Error transferring http://master.qt.io/online/qtsdkrepository/linux_x64/desktop/qt5_5110_src_doc_examples/qt.qt5.5110.src/5.11.0-0-201805181208qtactiveqt-everywhere-src-5.11.0.7z - server replied: Not Found

Ruslan Polupan
  • Мамыр 29, 2018, 5:45 Т.Қ.

Как такие вещи лечить и обходить?

Evgenii Legotckoi
  • Мамыр 29, 2018, 5:50 Т.Қ.

У меня таких проблем не возникало. Полагаю, что это просто проблемы с доступностью через Интернет. Причём последнее время это характерно для Российских пользователей (ну вы вкурсе благодаря чем и кому).
Тут только зеркала пробовать использовать.

Ruslan Polupan
  • Мамыр 29, 2018, 5:53 Т.Қ.

Я из Украины. :-)

Попутно вопрос, где настраивается зеркала. Германские зеркала у нас идут на ура.
Evgenii Legotckoi
  • Мамыр 29, 2018, 6 Т.Қ.

Пардон, тогда не знаю, что да как так с доступностью интернета в Украине.

Если запустите Maitenance Tool, то на самом первом шаге внизу слева есть кнопка Settings, там можно настроить репозитории и Proxy, в том числе можно добавлять репозитории. Я сам не проверял, но полагаю, что это может Вам помочь с настройкой зеркал.
Ruslan Polupan
  • Мамыр 29, 2018, 6:10 Т.Қ.

Как то два дня игрался. толку ноль. скачал оффлайн инсталятор. :-)

Evgenii Legotckoi
  • Мамыр 29, 2018, 6:11 Т.Қ.

Понятно :-) Тогда не знаю... страну менять)) Я вот в Прагу переехал.

Ruslan Polupan
  • Мамыр 29, 2018, 6:26 Т.Қ.

Ну раз еще со стороны Qt грабли, то это последняя капля. :-)

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз