
Qt 6.10 прибуває Містить багато покращень для розробників додатків та пристроїв, а також нові функції, починаючи від доступності та дизайну інтерфейсу і закінчуючи підтримкою аудіо, графіки та платформи. Це версія, яка спрощує повсякденне життя незалежно від того, чи працюєте ви в QML та Qt Quick, чи продовжуєте працювати з C++ та Qt Widgets.
Окрім заголовків, є зміни, які безпосередньо впливають на продуктивність: система макета, подібна до flexbox, у Qt Quick, розширена векторна анімація (SVG та Lottie), нові елементи керування, такі як SearchField, та набагато простіші способи підключення даних C++ до інтерфейсів QML. Також є досягнення в Android, macOS/iOS, Windows та Linux., а також низку дрібних чудових деталей у таких модулях, як Qt Graphs, Qt Quick 3D, Qt Multimedia або Qt Core.
Доступність та висока контрастність у Qt 6.10
Доступність значно покращилася: Вбудовані стилі Qt тепер враховуються Автоматично налаштовує параметри високої контрастності системи на комп’ютері та мобільному пристрої. Це допомагає підтримувати візуальну узгодженість з рештою середовища та дотримуватися норм без додаткової роботи.
Спосіб взаємодії віджетів Qt та елементів керування Qt Quick з допоміжними технологіями (наприклад, програмами зчитування з екрана) було переглянуто. краща інтеграція з базовими платформамиПрогрес особливо помітний у WebAssembly, і багато з цих покращень також з'являться в гілках LTS у майбутніх оновленнях обслуговування.
Qt 6.10 швидше створює інтерфейси
Qt Quick продовжує розвиватися, щоб пришвидшити виконання ітерацій, зменшити обсяг користувацького коду та досягти сучасних, адаптивних інтерфейсів. Виходить версія 6.10. новий макет flexbox, розширено підтримку векторної анімації, а також з’являється готовий до використання елемент керування SearchField.
Макет Flexbox для Qt Quick
FlexboxLayout включено як «технічний перегляд», систему, натхненну Flexible Box Layout від CSS, яка інтегрується з механізмом макета Qt Quick (включаючи додані властивості для налаштувати поведінку кожного елемента). Він розроблений для створення адаптивних інтерфейсів за лічені хвилини та підтримки стабільної продуктивності під час виконання.
Qt вже пропонував кілька макетів для адаптивних інтерфейсів, але з FlexboxLayout легше адаптуватися до різних розмірів/співвідношень екрана та зменшення варіацій довжини тексту через інтернаціоналізацію або типографічні уподобання.
Анімована векторна графіка: SVG та Lottie
Після кількох версій, що посилили підтримку векторної графіки (Qt Quick Scene Graph, Qt Quick Shapes та покращення SVG), у версії 6.10 вона додана підтримка векторної анімації як у зображеннях SVG, так і в зображеннях Lottie. Модуль Qt Lottie розширює діапазон підтримуваних сучасних файлів, і завдяки VectorImage можна відобразити Lottie як масштабований вектор з апаратним прискоренням.
Крім того, для конвертації файлів Lottie у Швидкі сцени Qt безпосередньо в QML, доповнюючи потік, започаткований svgtoqml.
Новий елемент швидкого керування Qt: SearchField
SearchField — це спеціалізоване поле введення для пошуку з вбудованими стилями та нативний вигляд на основних платформахВін відображає відповідні пропозиції у відфільтрованому випадаючому списку під час введення тексту та працює на моделях, які можна надати через стандартні шляхи даних QML.
Цей фрагмент особливо добре відповідає покращенням обміну даними між кодом C++ та швидкими інтерфейсами користувача Qt: нова функція у версії 6.10 робить легше підключати моделі C++ за допомогою елементів керування, таких як SearchField, без використання детальних шаблонів.
Інтегруйте свої дані в QML з меншими труднощами завдяки Qt 6.10
Qt пропонує кілька механізмів для поєднання логіки C++ з презентацією QML (синглтони, QAbstractItemModel, властивості контексту, об'єкти QObject тощо), а також такі інструменти, як Qt Creator 8Однак, побудова повної двосторонньої інтеграції може вимагати занадто багато повторюваного кодуУ Qt 6.10 цей бар'єр знижено завдяки новим API та типам, розробленим для реальної роботи.
QRangeModel
З'явилася QRangeModel, спрощена реалізація QAbstractItemModel для відображення діапазонів C++ як std::vector, std::array або будь-який ітерований контейнер безпосередньо до представлень у віджетах та QML/Qt Quick views. Він працює з простими значеннями (наприклад, int) та складнішими типами (Q_GADGET або std::tuple), генеруючи відповідні ролі без написання моделі вручну.
Якщо ви використовуєте гаджети, QRangeModel надає кожну властивість як іменовану роль, щоб делегати QML могли посилання з необхідними властивостями у типізованому вигляді. На практиці ви усуваєте потребу в ручному управлінні ролями або зловживанні властивостями контексту, і все поєднується зі скомпільованим QML.
delegateModelAccess: прямий запис від делегата
Досі для запису в модель з делегата зазвичай потрібен був об'єкт моделі або використовувалися властивості контексту. У версії 6.10 просто активуйте delegateModelAccess у режимі ReadWrite щоб делегати могли природним чином записувати необхідні властивості.
Нова можливість працює з усіма представленнями Qt: Instantiator, Repeater, ListView, GridView, TableView, TreeView, MapItemView та Repeater3D. Створення редагованих інтерфейсів користувача Це робить його більш передбачуваним та узгоджується з належними практиками QML.
Синхронізатор: синхронізація кількох властивостей
Роками дуже популярний елемент синхронізатора, який дебютує, щоб забезпечити це кілька об'єктів нерухомості мають однакову вартість коли це можливо, не розриваючи жодних посилань в жодному з них. Раніше прив'язки поєднувалися з обробником сигналів, і це найкраще працювало для елементів керування, реалізованих на C++.
Зі синхронізатором все зводиться до одного елемента, який підтримує n властивостей а також цільові середовища C++ та QML. Він доступний у модулі Qt.labs.synchronizer та постачається як технічний перегляд.
Деревоподібна модель у QML
Надання даних дерева Qt Quick раніше передбачало реалізацію QAbstractItemModel. QRangeModel спрощує це порівняно з C++, але іноді потрібно... оголосити дерево безпосередньо в QML для прототипів або невеликих наборів даних. Саме тут і приходить на допомогу тип QML TreeModel.
За допомогою TreeModel ви визначаєте вузли за допомогою масивів у стилі JSON та синтаксису словника, призначаєте пари ключ-значення кожному елементу та використовуєте їх у представленнях, таких як TreeView, без написання складної інфраструктури. Дозволяє ітерувати інтерфейс користувача на високій швидкості, перш ніж переносити структуру на C++, якщо це необхідно.
Модель проксі-сортування SortFilter у QML
Що стосується C++, ми роками використовуємо QSortFilterProxyModel. Qt 6.10 додає його декларативний аналог до QML для... сортування та фільтрування даних з API, зручним для зв'язування. Він включає сортувальники на основі ролей (наприклад, RoleSorter) та реактивні фільтри функцій (які можна перевизначити), щоб списки та таблиці були актуальними.
Ідея полягає в тому, що ви можете створювати конвеєри сортування та фільтрації безпосередньо в QML, за допомогою лаконічний та виразний код, без шкоди для продуктивності чи чіткості.
Зберігайте свій продукт сучасним за допомогою Qt 6.10
Системи розвиваються, і користувачі очікують, що їхні програми працюватимуть на найновіших пристроях та версіях. У версії 6.10 є Захопливі покращення платформи що сприяють цій безперервності, як показано на прикладі проектів, похідних від Qt, таких як LXQt 2.0.
Android: Поточна підтримка та нові інструменти
Qt 6.10 оголошує про офіційну підтримку Android 15 та 16, з налаштуваннями системи збірки та підтримкою сторінок розміром 16 КБ. Це дозволяє вам цільове поточне обладнання без будь-яких несподіванок, зберігаючи стабільність та продуктивність.
Дебютує Qt Jenny 1.0, генератор коду, який генерує JNI-зв'язок з анотованих класів Java. Він складається з компілятора та процесора анотацій, що генерує Qt C++ API на основі QJniObject для доступу до нативних сервісів, таких як BatteryManager, PowerManager або AudioManager. навіть спрощує сповіщення, які часто є складними через JNI. Він доступний на Maven Central та постачається з прикладами в Qt Creator та онлайн-документації.
Обробка заставки також була вдосконалена з часів Android 12, уникаючи подвійні екрани привітанняРекомендований підхід полягає у використанні спеціальної SplashActivity, встановленні тем із напівпрозорістю та запуску Qt Activity, коли Android буде готовий, що забезпечить плавний перехід.
macOS та iOS 26
Перший незначний реліз з моменту виходу macOS 26 "Tahoe". Новий дизайн Liquid Glass та зміни в архітектурі рендерингу поставили перед Qt проблеми, які він вирішив. пропонують повну підтримкуБагато покращень будуть перенесені в гілки LTS (6.8 та 6.5) у майбутніх патчах.
Windows: Qt WebView з WebView2
Qt WebView містить реалізацію на основі WebView2 для використання Microsoft Edge як рушія. Таким чином, ви можете вбудовувати веб-контент за допомогою вбудованого браузера системи та розгортання у Windows без перетягування Qt WebEngine, що зменшує обсяг ресурсів.
Linux та мультимедіа
Qt Multimedia додає вбудований бекенд для PipeWire з покращеною затримкою та контролем обробки контенту та апаратного забезпечення (наприклад, таких програм, як Mixxx 2.5), крім тонша підтримка в контейнерних середовищахКомпенсація висоти звуку додана для підтримки якості під час прискорення або уповільнення треків.
Вбудоване обладнання
На пристроях Boot to Qt використовує Yocto 5.2 "Walnascar" та відображається адаптації для азотних пластин EzurioМета: прискорити час виходу на ринок сучасного обладнання з оновленими стеками.
Інші помітні покращення в Qt 6.10
Qt Quick 3D тепер дозволяє Легко запікайте карти освітлення для підвищення якості з високою продуктивністю та запуску ефектів частинок у зворотному порядку, що корисно для імітації дощу або снігу, що впливають на ваші моделі.
Qt Graphs додає нову заповнену поверхню, покращену підтримку багатоосьових зображень, налаштовуваний 2D z-порядок та опцію відрендерити фрагмент 3D-графіки зображення для друку. До каталогу також додано нове зображення заповненої поверхні.
У віджетах Qt створіть користувацькі делегати Це простіше та має детальніше керування перетягуванням елементів у режимах перегляду. Макети дозволяють налаштовувати обмеження розміру індивідуально.
Віртуальна клавіатура тепер включає Латвійський розподіл, розширюючи мовне покриття. А в Qt Core API були вдосконалені для роботи з локалями, XML-документами та рядками продовження.
У графічному інтерфейсі Qt, бекенд QRhi додає перелік 3D-адаптерів при використанні Direct3D 11/12 або Vulkan, що спрощує вибір графічних процесорів на машинах з кількома відеокартами.
Були введені підвищення продуктивності у QGrpcHttp2Channel, що вигідно для програм, що використовують gRPC замість HTTP/2 у вимогливих сценаріях.
Більше про Qt 6.10
Вейланд отримує управління сеансами, ключовий компонент для сучасних інтеграцій зі стільницями, а також корисні графічні сповіщення про скидання для таких компонентів, як композитори (наприклад, KWin).
Qt WebEngine включає підтримку для Розширення Chromium, що є давнім попитом користувачів браузерів на базі QtWebEngine. Це відкриває можливості для таких проектів, як Falkon, використовувати ту саму екосистему розширень, яку ви вже використовуєте в Chromium.
Окрім прямої підтримки Lottie у VectorImage, інструмент lottietoqml спрощує Впровадьте анімацію у світ QML, розширюючи свій творчий арсенал без шкоди для продуктивності.
Qt 6.10 — це важливий крок до розробки доступніших та сучасніших інтерфейсів, інтеграції даних C++ у QML з меншими труднощами та безперешкодного розгортання на найновіших платформах, і все це з додаванням практичних мультимедійних, графічних та основних функцій, що відображається як на продуктивності, так і на якості кінцевого продукту. Якщо у вашому стеку є Qt, це оновлення заслуговує на місце у вашому плані.