© best_vector/Shutterstock.com
Windows Developer
Animierte und portable Benutzeroberflächen mit QML erstellen

Steuerelement aus Partikeln

Das im vorigen Heft besprochene Qt GUI bietet Entwicklern eine Vielzahl von funktionsreichen Steuerelementen. Beim Portieren des Frameworks erwiesen sich diese als Hindernis: Die komplette Reimplementierung nahm Unmengen von Zeit in Anspruch. Die leicht portierbare Skriptsprache QML kann hier Abhilfe schaffen.

Tam Hanna


Qt GUI erwies sich bei der Realisierung von Animationen als unflexibel. Nokia begegnete diesem Problem mit der Einführung einer als QML bezeichneten Skriptsprache, die auf die Erstellung von animierten und portablen Benutzeroberflächen spezialisiert ist. Das leicht portierbare QML bietet lediglich „Bauteile“ an: Rechtecke, Bitmaps und Labels sollen von Drittherstellern zur Realisierung von Widgets eingesetzt werden. Beispielsweise bietet das Softwareunternehmen Digia mit Components eine kleine Auswahl für manche Plattformen an, die von anderen Anbietern ergänzt wird.

Struktur und Komponente

Qt Creator bietet zwei Projekttypen an: Qt Quick UI sind reine QML-Programme, während das in den folgenden Schritten verwendete und vom Autor empfohlene Projektskelett Qt-Quick-Anwendung aus einem C++- und einem QML-Teil besteht. Im Rahmen der Erstellung eines derartigen Projekts fragt der Assistent nach der zu verwendenden QML-Art (Abb. 1). Digia entwickelt die Sprache im Hintergrund permanent weiter: Wer eine bestimmte Version von QML einsetzt, muss eine damit kompatible Version des Basisframeworks Qt verwenden.

Abb. 1: QML-Projekte gibt es in mehreren Variationen

Zudem ist es möglich, sich für oder gegen das in der Einleitung beschriebene Steuerelementpaket zu entscheiden. Wir arbeiten in den folgenden Schritten mit Qt Quick Controls 1.3 – da WinRT erst ab Qt 5.4 zuverlässig funktioniert, ist dies für das vorliegende Beispiel kein Problem. Bei der Arbeit an Cross-Plattform-Applikationen sieht die Situation naturgemäß anders aus. Wenn eines der Zielsysteme mit einer älteren Version von Qt angesprochen werden muss, dient diese als Baseline.

Abb. 2: Unser QML-Projekt kommt ohne vollwertige C++-Klasse aus

Der Lohn der Mühen ist die in Abbildung 2 gezeigte Projektstruktur. Anstelle der im letzten Teil der Serie vorgestellten Klassendefinition haben wir es hier mit einer main-Datei zu tun, die folgenden Code enthält:

#include int main(int argc, char *argv[]){ QApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec();}

QML lässt sich auf verschiedene Arten in existierende Qt-GUI-Formulare integrieren. Unsere Applikation ist in der Lage, ohne Legacy Code auszukommen. Aus diesem Grund erstellen wir eine QMLApplicationEngine. Diese Convenience-Klasse kümmert sich um die Erstellung eines Anzeigebereichs, der anschließend von der als Parameter übergebenen QML-Datei „bevölkert“ wird.

Die...

Windows Developer
Animierte und portable Benutzeroberflächen mit QML erstellen

Steuerelement aus Partikeln

Das im vorigen Heft besprochene Qt GUI bietet Entwicklern eine Vielzahl von funktionsreichen Steuerelementen. Beim Portieren des Frameworks erwiesen sich diese als Hindernis: Die komplette Reimplementierung nahm Unmengen von Zeit in Anspruch. Die leicht portierbare Skriptsprache QML kann hier Abhilfe schaffen.

Tam Hanna


Qt GUI erwies sich bei der Realisierung von Animationen als unflexibel. Nokia begegnete diesem Problem mit der Einführung einer als QML bezeichneten Skriptsprache, die auf die Erstellung von animierten und portablen Benutzeroberflächen spezialisiert ist. Das leicht portierbare QML bietet lediglich „Bauteile“ an: Rechtecke, Bitmaps und Labels sollen von Drittherstellern zur Realisierung von Widgets eingesetzt werden. Beispielsweise bietet das Softwareunternehmen Digia mit Components eine kleine Auswahl für manche Plattformen an, die von anderen Anbietern ergänzt wird.

Struktur und Komponente

Qt Creator bietet zwei Projekttypen an: Qt Quick UI sind reine QML-Programme, während das in den folgenden Schritten verwendete und vom Autor empfohlene Projektskelett Qt-Quick-Anwendung aus einem C++- und einem QML-Teil besteht. Im Rahmen der Erstellung eines derartigen Projekts fragt der Assistent nach der zu verwendenden QML-Art (Abb. 1). Digia entwickelt die Sprache im Hintergrund permanent weiter: Wer eine bestimmte Version von QML einsetzt, muss eine damit kompatible Version des Basisframeworks Qt verwenden.

Abb. 1: QML-Projekte gibt es in mehreren Variationen

Zudem ist es möglich, sich für oder gegen das in der Einleitung beschriebene Steuerelementpaket zu entscheiden. Wir arbeiten in den folgenden Schritten mit Qt Quick Controls 1.3 – da WinRT erst ab Qt 5.4 zuverlässig funktioniert, ist dies für das vorliegende Beispiel kein Problem. Bei der Arbeit an Cross-Plattform-Applikationen sieht die Situation naturgemäß anders aus. Wenn eines der Zielsysteme mit einer älteren Version von Qt angesprochen werden muss, dient diese als Baseline.

Abb. 2: Unser QML-Projekt kommt ohne vollwertige C++-Klasse aus

Der Lohn der Mühen ist die in Abbildung 2 gezeigte Projektstruktur. Anstelle der im letzten Teil der Serie vorgestellten Klassendefinition haben wir es hier mit einer main-Datei zu tun, die folgenden Code enthält:

#include int main(int argc, char *argv[]){ QApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec();}

QML lässt sich auf verschiedene Arten in existierende Qt-GUI-Formulare integrieren. Unsere Applikation ist in der Lage, ohne Legacy Code auszukommen. Aus diesem Grund erstellen wir eine QMLApplicationEngine. Diese Convenience-Klasse kümmert sich um die Erstellung eines Anzeigebereichs, der anschließend von der als Parameter übergebenen QML-Datei „bevölkert“ wird.

Die...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang