Состоялся релиз кроссплатформенного фреймворка для разработки приложений и построения графических интерфейсов Qt 5.11.
Список изменений:
- Qt Core:
- QFloat16 теперь имеет два метода для массового преобразования между float16 и float, используя аппаратное ускорение SIMD, если оно доступно во время выполнения;
- QVarLengthArray теперь имеет референсные версии rvalue prepend и insert и может содержать типы данных только для подвижных объектов, такие как
std::unique_ptr
; - Методы QVector prepend и insert теперь имеют варианты принимающие ссылки на rvalue;
- QUuid toString() и toByteArray() теперь могут принимать параметр, определяющий сгенерированный формат;
- Обновлена поддержка Unicode в QString, QChar и QTextBoundaryFinder для совместимости с Unicode 10;
- Добавлен QAbstractItemModel::checkIndex(), для помощи в тестировании достоверности индексов модели по конкретным классам моделей.
- QFloat16 теперь имеет два метода для массового преобразования между float16 и float, используя аппаратное ускорение SIMD, если оно доступно во время выполнения;
- Qt Network:
- TLS-ресширение ALPN и согласование соединения HTTP/2 теперь поддерживается в iOS (начиная с версии 11);
- QNetworkRequest теперь имеет атрибут Http2DirectAttribute, чтобы начать соединение в HTTP/2 без предварительного согласования.
- TLS-ресширение ALPN и согласование соединения HTTP/2 теперь поддерживается в iOS (начиная с версии 11);
- Qt QML:
- Переписаны стадии разбора кода и компиляции. Теперь байт-код генерируется непосредственно из AST, и сохраняется как промежуточное представление;
- Оптимизированная обработка вызовов JS, что приводит к большим улучшениям, особенно при вызове небольших функций;
- Новый интерпретатор байт-кода с значительно улучшенной производительностью (на 80-90% JIT в сравнении с Qt 5.10);
- Файлы .qmlc теперь полностью независимы от платформы и сохраняют байт-код вместо сборки;
- Новая точка доступа JIT, которая генерирует оптимизированную сборку для многократно выполняемого байт-кода;
- CONFIG + = qmlcompiler теперь также работает в opensource-верии, встраивая сгенерированный байт-код во время компиляции.
- Переписаны стадии разбора кода и компиляции. Теперь байт-код генерируется непосредственно из AST, и сохраняется как промежуточное представление;
- Qt Quick:
- Расширенная поддержка загрузки сжатых текстур в элемент изображения. Поддерживаются форматы файлов .ktx и .pkm.
- Qt Quick Controls 2:
- AbstractButton:
- Добавлены свойства autoRepeatDelay и autoRepeatInterval;
- Перенесено свойство autoRepeat из Button в AbstractButton;
- Добавлены свойства pressX и pressY для отображения точки нажатия на QML.
- Добавлены свойства autoRepeatDelay и autoRepeatInterval;
- ButtonGroup:
- Добавлено свойство checkState для показа общего состояния проверки всей группы.
- CheckBox и CheckDelegate:
- Свойство tristate больше не устанавливается в true при установке checkState на Qt.PartiallyChecked;
- Частично отмеченный чекбокс больше не обрабатывается как полностью отмеченный. Это фиксирует цикличность проверки состояния для чекбокса без трех состояний, чтобы он прошел от частично проверенного до полностью контролируемого состояния;
- Реализована возможность добавления nextCheckState () в QML.
- Свойство tristate больше не устанавливается в true при установке checkState на Qt.PartiallyChecked;
- ScrollBar и ScrollIndicator:
- Добавлены свойства minimumSize, visualSize и visualPosition.
- SpinBox:
- Добавлено свойство displayText, чтобы позволить стилям создавать легкую привязку для отображения текстового значения вместо вызова JavaScript-функции textFromValue().
- AbstractButton:
- Qt 3D:
- Улучшена производительность и снижено потребление CPU;
- Выпуск произвольных лучей в пространстве мира или пространстве экрана;
- Улучшена поддержка SIMD.
- Улучшена производительность и снижено потребление CPU;
- Qt Location:
- Экспериментальный API-интерфейс пошаговой навигации;
- Экспериментальная поддержка объектов QQuickItem-less;
- API маршрутизации и мест теперь расширяемый и способный возвращать сервис-специфичную информацию;
- Новый элемент Waypoint для указания дополнительной информации о маршрутной точке в маршрутных запросах, таких как угол захода на посадку;
- MapItemView теперь QQmlDelegateModel-based;
- Значительно улучшена производительность MapPolyline;
- Слои теперь корректно работают в сочетании с элементами карты, что обеспечивает возможность сглаживания и прозрачности без артефактов;
- Поддержка геокодирования и мест добавлена в плагин Mapbox.
- Экспериментальный API-интерфейс пошаговой навигации;
- Qt WebEngine:
- Движок обновлён до Chromium 65;
- Встроенные средства разработчика теперь могут использоваться без отдельного браузера;
- Добавлен встроенный cookie-фильтр;
- Добавлена поддержка квот.
- Движок обновлён до Chromium 65;
- qdoc:
- qdoc теперь использует libclang для синтаксического анализа кода C/C ++.
- Qt Designer:
- Добавлена поддержка переводов, основанных на ID.
- Qt GUI:
- Поддержка печати в Linux теперь поддерживает больше опций CUPS, значительно улучшен диалог вывода на печать;
- Улучшены средства для людей с ограниченными возможностями на платформе Windows Desktop;
- В платформу Windows Desktop добавлена поддержка тем виджетов, а также улучшена работа HiDPI;
- Обновлен двунаправленный текстовый алгоритм Unicode, совместимый с Unicode 10.
- Поддержка печати в Linux теперь поддерживает больше опций CUPS, значительно улучшен диалог вывода на печать;
- Qt Widgets:
- Добавлен быстрый выбор текста мышью для QLineEdit.
- Qt Serial Bus:
- Добавлен J2534 Pass-Thru CAN-плагин для связи между компьютером и автомобилем;
- Добавлено описание, серийный номер и канал в QCanBusDeviceInfo, для совместимых плагинов;
- Введено категоризированное ведение журнала в модуль шины CAN, который может быть включен фильтрами «qt.canbus» и «qt.canbus.plugins. <Pluginame>»;
- QCanBusFrame::isValid() теперь проверяет недопустимую длину полезной нагрузки CAN FD. Например. 24 является допустимой длиной полезной нагрузки CAN FD, но 28 нет.
- Добавлен J2534 Pass-Thru CAN-плагин для связи между компьютером и автомобилем;
- Qt Bluetooth:
- В BlueZ's DBus LE API портирована реализация Bluetooth Low Energy (минимальная версия для включения - BlueZ 5.42).
- Qt Test:
- Добавлен QAbstractItemModel Tester, для помощи в тестировании классов моделей.