Logo von Developer

Suche
Abonnieren

Tägliche Top-News bei WhatsApp, Facebook Messenger, Telegram & Insta

preisvergleich_weiss

Recherche in 1.682.592 Produkten

Tam Hanna 57

C++-Framework: Qt 5.9 als neues Long-Time-Support-Release veröffentlicht

C++-Framework: Qt 5.9 als neues Long-Time-Support-Release veröffentlicht

Die neue Version des Qt-Frameworks zur Entwicklung plattformunabhängiger Anwendungen löst Qt 5.6 als neues LTS-Release ab. Ansonsten weiß Qt 5.9 mit vielen Detailänderungen und besserer Performance zu überzeugen.

Qt wird aufgrund des Abkommens mit der KDE Free Qt Foundation regelmäßig aktualisiert. Um Anwendern, die nicht jedes Release mitgehen wollen oder können, gewisse Garantien zu geben, hat man sich darauf verständigt, von Zeit zu Zeit LTS-Releases (Long Term Support) herauszugeben. Das bedeutet, dass eine LTS-Version von Qt auch dann noch Updates erhält, wenn der Nachfolger bereits auf dem Markt ist. Normalerweise ist das nicht der Fall – wer beispielsweise nach dem Erscheinen von Qt 5.8 einen Fehler in Qt 5.7 meldet, bekommt diesen nur im Rahmen eines Releases von Qt 5.8.x gefixt. Das neue Qt 5.9 ist ab sofort der aktuelle LTS-Branch.

Anzeige

Qt ist ein seit Jahren entwickeltes und reifes Framework. Deswegen haben die Entwickler von Qt naturgemäß das Problem, dass das Finden neuer Features mit steigendem Umfang zunehmend schwieriger wird. Das Team identifizierte für das neue Release einige Dutzend Baustellen, die auf einer gesonderten Webseite detailliert aufgelistet wurden.

Wer unter Qt mit nativen Plattformen arbeitet, musste bisher komplexe Abstraktionsklassen realisieren. Qt 5.9 hilft hier mit einer neuen Klasse aus, die zur Laufzeit Reflektion über die Arbeitsumgebung ermöglicht:

class Q_CORE_EXPORT QOperatingSystemVersion 
{
public:
enum OSType {
Unknown = 0,
Windows,
macOS,
iOS,
tvOS,
WatchOS,
Android
};
static const QOperatingSystemVersion Windows7;
static const QOperatingSystemVersion Windows8;
...
Q_DECL_CONSTEXPR OSType type() const { return m_os; }
QString name() const;

Freunde des Location-Moduls dürfen sich derweil über neue APIs freuen, die das Rotieren und Kippen von Karten ermöglichen: Dieses in anderen Mapping-Frameworks schon lange vorhandene Feature setzte unter Qt Location bisher von Hand zu realisierende Bitmap-Operationen voraus. Ähnliches findet sich in Qt Charts, wo einige für wissenschaftliche Anwender wichtige Erweiterungen bereitstehen (Stichwort logarithmische Diagrammachsen).

Nutzer von Qt Quick Controls dürfen sich in Version 5.9 über Multitouch-Support freuen. Das Qt fördernde Unternehmen Digia spendiert zudem eine Gruppe neuer Animationen, die die Qualität des Benutzerinterfaces erhöhen und eine langjährige Scharte des Frameworks beheben. Das in Qt seit einiger Zeit enthaltene virtuelle Keyboard bekam derweil Unterstützung für hauseigene Layouts, was Entwicklern das Erzeugen applikationsspezifischer virtueller Tastaturen erleichtert.

Außerdem wurde die Kompatibilität mancher Elemente des Frameworks erweitert: So stand die NFC-API unter Android bisher nicht zur Verfügung, während QprocessEnvironment nun auch in Apples Mobilsystemen einsetzbar ist. Windows RT darf derweil auf Bluetooth Classic zugreifen, während Android nun Bluetooth-Peripherals unterstützt.

Das einzige komplett neue Modul ist Qt Gamepad, das Entwicklern den direkten Zugriff auf Spielsteuergeräte ermöglichen soll und bisher nur als Preview vorlag. Qt Creator 4.3.0 verbessert die Integration zwischen Code und WYSIWYG auf QML-Ebene: So gibt es einige Ansichten, in denen sich QML-Code gleichzeitig grafisch und textuell bearbeiten lässt.

Digia
Code und Grafik, gleichzeitig am Schirm (Bild: Digia)

Neben der Möglichkeit zur Kombination aus grafischem und codierendem Bearbeiten erlaubt Qt Creator 4.3 auch die Kombination aus Code-Bearbeitung und Profiler-Ergebnissen.

Anzeige

Nutzer des QNetworkAccessManager bekommen zwei Erweiterungen im Interesse der Sicherheit. Erstens wird nun auch HTTP Strict Transport Security (HSTS) unterstützt, zweitens ermöglicht ein neuer Aufzählungstyp das feingranulare Einstellen des Verhaltens bei der Abarbeitung von Weiterleitungen:

RedirectsPolicy { 
ManualRedirectsPolicy,
NoLessSafeRedirectsPolicy,
SameOriginRedirectsPolicy
}

Qt3D erfuhr diverse Erweiterungen. Ein besonderes Feature ist die Möglichkeit, auf Qt Quick 2 basierende Szenen in eine Textur zu kopieren, um dieses Resultat sodann wie eine gewöhnliche Textur in dreidimensionalen Szenen weiterzuverwenden. Zudem steht mit qfloat16 eine 16-bittige Gleitkommazahl zur Verfügung, die bei der Interaktion mit GPUs und Accelerator-Karten hilfreich sein dürfte.

Unter Linux war QML – insbesondere auf ARM-Prozessoren – vergleichsweise langsam, was das Deployment sehr leistungsstarker CPUs erforderte und den Stromverbrauch des Gesamtsystems erhöhte. Eines der Hauptziele von Qt 5.9 war die Steigerung der Performance an dieser Stelle.

Digia
Qt 5.9 bringt diverse Möglichkeiten zur Geschwindigkeitssteigerung mit. (Bild: Digia)

Diverse Optimierungen im Hintergrund senken den Speicherbedarf und beschleunigen das Abarbeiten von Shadern. Von besonderem Interesse in diesem Zusammenhang ist auch eine Optimierung im Entwicklungsprozess von Qt – eine Vielzahl automatisierter Performancetests sorgen dafür, dass das Qt-Team die Performance des Frameworks permanent im Blick hat.

Dank Graphana stehen Leistungsinformationen permanent zur Verfügung.
Dank Graphana stehen Leistungsinformationen permanent zur Verfügung.

Qt Lite wurde im Rahmen von Qt 5.9 mit feingranulareren Bitschaltern versehen: Hinter dieser auf den ersten Blick komplex klingenden Formulierung verbirgt sich die Möglichkeit, die einzelnen Module noch genauer ein- und auszuschließen. Im Zusammenspiel mit wesentlichen Verbesserungen im Bereich der Optimierbarkeit ergibt sich eine massive Reduktion der Kompilatgröße.

Im Bereich Betriebssystem-Support gab es einen kleinen Tausch: Windows RT 8.1 wird nicht mehr unterstützt. Stattdessen steht nun das Echtzeitbetriebssystem Integrity zur Verfügung, das im Rüstungs- und Embedded-Bereich erfolgreich ist.

Das neue Qt bringt eine Vielzahl von Verbesserungen am Gesamtframework. Wer derzeit noch mit einer älteren Version von Qt arbeitet, wird das Upgrade nicht bereuen. Im Zusammenspiel mit der neuen Variante der Qt-Creator-IDE dürften sich zudem bei der Arbeit mit QML Produktivitätssteigerungen ergeben.

Siehe dazu auch:

(Tam Hanna) / (ane)

57 Kommentare

Themen:

Anzeige
  1. Qt 5.8 erschienen: Schlanker Ansatz für die Klassenbibliothek

    Qt 5.8 erschienen: Schlanker Ansatz für die Klassenbibliothek

    Mit einem neuen Modulkonzept richten sich die Qt-Macher dediziert an Entwickler von Anwendungen für Endgeräte mit geringem Speicher. Aber auch bei den Modulen selbst gibt es viel Neues.

  2. C++-Klassenbibliothek Qt 5.9 soll LTS-Release werden

    Qt 5.9 soll LTS-Release werden

    Auf der Qt-Mailing-Liste haben die Macher einige Details zur geplanten Roadmap veröffentlicht. Qt 5.9 soll das erste LTS-Release nach Qt 5.6 werden, und das Team plant häufigere Patch-Releases als für die letzten Versionen.

  3. Cross-Plattform-Entwicklung: Qt adressiert den Automatisierungssektor

    Qt öffnet sich dem Automatisierungssektor

    Die Suite Qt for Automation zielt auf Anwendungen im Bereich Internet der Dinge beziehungsweise Industrie 4.0. Sie setzt auf Qt 5.9 auf und bringt zusätzliche Bibliotheken, unter anderem zur Implementierung des IoT-Protokolls MQTT.

  4. IDE: Qt Creator 4.3 ist fertig

    IDE: Qt Creator 4.3 ist fertig

    Die vor allem für Nutzer des Qt-Frameworks gedachte Cross-Plattform-IDE zur Anwendungsentwicklung kann unter anderem mit Neuerungen im Qt Quick Designer aufwarten und hilft nun besser, wenn es darum geht, C++-Dateien in einem anderen Kontext zu verwenden.

  1. Mapping, Geocoding und Routing mit Qt Location

    So haben wir nicht gewettet:Im Moment führt Zoomen zu Darstellungsfehlern (Abb. 4).

    Die schon länger in Entwicklung befindliche Qt-Location-Erweiterung sieht sich selbst als Abstraktionsschicht zwischen Kartenrenderer, Routinganbieter und Entwickler. Mit Qt 5.5 im letzten Jahr hat das Paket – endlich – Preview-Status erreicht.

  2. App-Entwicklung mit JavaScript, Teil 2: Evolution einer Sprache

    Mit ECMAScript 2015 folgte die wohl größte Umwälzung von JavaScript aller Zeiten. Lange vermisste Sprachkonstrukte kamen damit endlich auch ins Web. Seitdem kommt jedes Jahr ein neues JavaScript.

  3. Features von übermorgen: die Shape Detection API

    Bei der Web Incubator Community Group werden verschiedene Vorschläge für neue Web APIs diskutiert und ausgearbeitet. Eine davon ist die Shape Detection API, mithilfe derer sich über den Browser verschiedene Formen wie Gesichter oder Barcodes innerhalb von Bilddaten erkennen lassen.

  1. Silicon Valley: Apples Shuttle-Busse angegriffen

    Neuer Apple Campus

    Der iPhone-Konzern betreibt wie andere IT-Konzerne auch ein eigenes Nahverkehrssystem, das Mitarbeiter von San Francisco in sein Hauptquartier bringt. Mehrere Fahrzeuge wurden nun attackiert – womöglich von Aktivisten.

  2. Fritzbox-Updates: Kommendes FritzOS 7 könnte zwei Router per Mesh-WLAN koppeln

    Fritzbox-Updates: FritzOS 7 könnte zwei Fritzboxen per Mesh-WLAN koppeln

    Der Routerhersteller AVM erwägt, die Mesh-Funktionen im erwarteten FritzOS 7 weiter auszubauen, um entfernte Geräte via Mesh anzukoppeln. Das erklärte die Firma im Rahmen einer Stellungnahme zu einem missverständlichen Facebook-Posting.

  3. Die Neuerungen von Linux 4.15

    Linux-Kernel 4.15

    Das noch diesen Monat erwartete Linux 4.15 schützt vor den Auswirkungen der Sicherheitslücken Meltdown und Spectre. Ohne Performance-Verlust geht das aber auch bei Linux nicht. An weiteren Gegenmaßnahmen schrauben die Kernel-Entwickler bereits.

  4. Regulierer: Internet häufig langsamer als vertraglich vereinbart

    Deutsche Telekom

    Die Auswertung von rund 700.000 Bandbreitenmessungen bei der Bundesnetzagentur stellt den deutschen Zugangsanbietern kein besonders gutes Zeugnis aus: Viele Nutzer erhalten nicht einmal die Hälfte der versprochenen Bandbreite.

Anzeige