Etwas früher als geplant wurde heute (22. Mai 2018) Qt 5.11 veröffentlicht. Wie immer fügt die neue Version viele neue Funktionen hinzu und behebt viele Fehler aus früheren Versionen. Werfen wir einen Blick auf die interessantesten neuen Funktionen (Features).
Qt Core und Netzwerk
In Qt Core wurde viel an feinen Details gearbeitet. Beispielsweise haben einige der Tool-Klassen neue rbalue-überladbare Argumentreferenzen erhalten, und fehlende Methoden wurden für eine bessere STL-Kompatibilität hinzugefügt. Modellelemente erhielten mehrere neue Funktionen.
In Qt Network unterstützen ALPN und HTTP/2 jetzt iOS. QNetworkRequest hat ein Http2DirectAttribute empfangen, um eine HTTP/2-Verbindung ohne vorherige Aushandlung zu starten.
Eines der größten Updates war die Unicode-Unterstützung in Qt Core. QChar, QString, QTextBoundaryFinder und der Bidi-Algorithmus sind jetzt vollständig kompatibel mit Unicode 10.
Qt-GUI und -Widgets
Viel Aufmerksamkeit wurde in Qt 5.11 dem Zugriffssupport unter Windows geschenkt. Es wurde komplett neu gestaltet und basiert jetzt auf Microsoft UI Automation und nicht mehr auf dem alten Microsoft Active Accessibility-Framework, wodurch die Windows-Barrierefreiheit erheblich verbessert wird. Es wurde auch viel Arbeit in die Verbesserung des Aussehens und Verhaltens von Windows gesteckt, um hochauflösende Displays besser zu unterstützen. Der Druckdialog unter Linux wurde neu gestaltet und zeigt jetzt verbesserte Unterstützung für alle bereitgestellten CUPS-Optionen. Qt Widgets hat zahlreiche Korrekturen erhalten und Unterstützung für die schnelle Textauswahl mit der Maus in QLineEdit erhalten. All dies ist ein gutes Upgrade für alle Benutzer.
Qt-QML
Auch bei der QML-Engine hat es große Veränderungen gegeben. Die Compiler-Pipeline, die QML analysiert und kompiliert, wurde komplett neu geschrieben. Die neue Pipeline brachte Leistungs- und Wartbarkeitsverbesserungen.
Die neue Compiler-Pipeline kompiliert QML immer in plattformunabhängigem Bytecode. Die Engine speichert diesen Bytecode in qmlc-Dateien. Sie können den Bytecode auch vorab mit dem Compiler-Feature qmlcompiler generieren (das jetzt auch in der Open-Source-Version verfügbar ist).
Der neue Bytecode-Interpreter hat die Leistung gegenüber der alten Version stark verbessert. Testaufgaben bestehen in 80-90 % der Zeit von JIT Qt 5.10. Ein neuer JIT-Compiler wurde hinzugefügt, der deutlich besser ist als die alte Version.
Qt Quick und Qt Quick-Steuerung
Qt Quick bietet erweiterte Unterstützung für das Laden komprimierter Texturen in Bildelemente und erweiterte Unterstützung für die Formate .ktx und .pkm. Diese Funktion trägt dazu bei, die Ladezeit und den Speicherverbrauch zu reduzieren, indem Snapshots in einem Format gespeichert werden, das direkt an die GPU gesendet wird.
Qt Quick Controls 2 erhielt viele kleine Funktionen und Fehlerbehebungen. Zum Beispiel automatische Rotationseigenschaften für Schaltflächen, verbesserte Bildlaufpositionierung und verbesserte Styling-Unterstützung für SpinBoxes.
Qt-Speicherort
Es gab auch viele Änderungen in Qt Location. Die größten Änderungen beziehen sich auf die experimentelle Unterstützung der Turn-by-Turn-Navigation. Aber es gibt auch andere Änderungen. QtLocation verfügt jetzt über eine experimentelle API zum Erstellen von Kartenobjekten, die nicht an ein QQuickItem gebunden sind. Die Leistung von MapPolyline-Objekten wurde erheblich verbessert, und Ebenen funktionieren jetzt in Verbindung mit Kartenelementen. Darüber hinaus wurde eine erweiterbare Routing- und Positionierungs-API erstellt und neue Wegpunkte hinzugefügt. Schließlich erhielt das MapBox-Plugin Unterstützung für Geokodierung und Positionierung.
Qt-Webengine
Wie es in Qt-Releases zum Standard geworden ist, wurde Chromium unter QtWebengine auf Chromium 65 aktualisiert. Darüber hinaus werden integrierte DevTools jetzt unterstützt, ohne dass ein separater Browser erforderlich ist, ein Cookie-Filter gesetzt und Kontingente zugelassen werden.
Qt für die Geräteentwicklung
Alle oben erwähnten neuen Funktionen sind natürlich auch in Qt verfügbar, um ein Gerät zu erstellen. Darüber hinaus wird daran gearbeitet, einige eingebaute Funktionen zu verbessern.
Eines der neuen Features hier ist die Unterstützung für Hardware-Grafikebenen, die derzeit als Technologievorschau für Plattformen verfügbar sind, die VSP2-Hardware-Compositing unterstützen. Dies kann für Funktionen wie Videounterlagen (nach Ebenen) verwendet werden und hilft, die Leistung zu verbessern und den Stromverbrauch zu senken. Qt Company beabsichtigt auch, die Anzahl der unterstützten Plattformen und Hardwarekombinationen in zukünftigen Versionen zu erweitern.
Qt SerialBus hat eine verbesserte CAN-Bus-Unterstützung erhalten. Das KNX-Modul hat mehrere wichtige Upgrades erhalten. Außerdem wird Qt 5.11 ein neues Modul haben, das Unterstützung für OPC/UA hinzufügt. Dieses Modul ist für die Technologievorschau in Qt 5.11 verfügbar.
Weitere Verbesserungen
qdoc verwendet jetzt libclang für das C++-Parsing, wodurch modernes C++ in der Dokumentation besser unterstützt wird. Qt Serialbus und Bluetooth haben jetzt eine verbesserte Unterstützung für CAN- und BTLE-Busse. Die Unterstützung für einige ältere Compiler und Plattformen wurde aus Qt 5.11 entfernt. MSVC2013, QNX 6.6 und macOS 10.10 werden nicht mehr unterstützt.
Qt 3D und Qt 3D Studio
An der zweiten Version von Qt 3D Studio wird hart gearbeitet. Diese zweite Version enthält eine komplett neu geschriebene Laufzeitumgebung, die auf qt3d basiert. Dies ermöglicht jedem eine bessere und tiefere Integration in den Rest von Qt, wenn er Qt 3D Studio zum Erstellen von 3D-Schnittstellen verwendet. Durch diese Arbeit erhielt Qt 3D auch viele neue Funktionen, Leistungsverbesserungen und Fehlerbehebungen. Qt 3D Studio 2.0 befindet sich derzeit im Beta-Test und die Qt Company arbeitet hart daran, innerhalb der nächsten Wochen eine endgültige Version zu erhalten.
Qt für Webassembly und Python
Mit Qt for Webassembly wird daran gearbeitet, die letzte große Lücke in der plattformübergreifenden Geschichte zu schließen, indem es Benutzern ermöglicht wird, das Web und Browser als Plattform für Qt-Anwendungen auszuwählen. Die erste Version wurde als Technologievorschau veröffentlicht. Darüber hinaus arbeitet Qt Company aktiv an der Unterstützung von Qt in Python. Die erste Veröffentlichung ist für Juni geplant.
Здорово.
Статика что-ли?
Обычно я просто ставил новую версии из Maintenance Tool, добавлял комплект сборки, пересобирал проект, если во время компиляции проблем не было, то удалял старую версию.
Статика. Просто с онлайн установкой постоянные проблемы со связью с репозитроиями.
Пересобирать придётся в любом случае. Вообще, насколько знаю, можно и просто git-репозиторий Qt использовать. Если вышел update, то сделать fetch, переключиться на нужную ветку и пересобрать статику. Думаю, что так вполне можно сделать.
Я имел ввиду не статическую сборку а оффлайн инсталятор. Онлайн уж очень часто достает вот таким:
Не удалось загрузить архив «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
Как такие вещи лечить и обходить?
У меня таких проблем не возникало. Полагаю, что это просто проблемы с доступностью через Интернет. Причём последнее время это характерно для Российских пользователей (ну вы вкурсе благодаря чем и кому).
Тут только зеркала пробовать использовать.
Я из Украины. :-)
Пардон, тогда не знаю, что да как так с доступностью интернета в Украине.
Как то два дня игрался. толку ноль. скачал оффлайн инсталятор. :-)
Понятно :-) Тогда не знаю... страну менять)) Я вот в Прагу переехал.
Ну раз еще со стороны Qt грабли, то это последняя капля. :-)