© Liashko/Shutterstock.com
Entwickler Magazin
Ein Blick auf Qt aus der Sicht eines C++-Entwicklers

Qt lernt JavaScript

Die von Nokia im Rahmen von Qt 4.7 eingeführte Sprache QML hat in der Qt-Gemeinde für Unruhe gesorgt - konservativere Zeitgenossen (wie der Autor dieser Zeilen) hofften sogar darauf, dass das lästige Modephänomen schon bald den Weg alles Irdischen gehen würde.

Tam Hanna


Leider entpuppte sich die Sprache als höchst robust. In Qt 5.0 gilt sie sogar als „Favorit“ für die Entwicklung von mobilen Benutzerschnittstellen. Auch das von RIM entwickelte Cascades lässt sich am besten aus QML heraus ansprechen. Aus diesem Grund wollen wir uns nun die Frage stellen, was QML für alteingesessene Entwickler für Neuerungen bringt.

QML – was ist das?

Hinter der etwas sperrigen Abkürzung verbirgt sich die Abkürzung „Qt Modeling Language“. Damit ist die Aufgabe der Sprache auch schon gut beschrieben – es handelt sich dabei um ein Werkzeug zur Erstellung von Benutzeroberflächen.

Natürlich haben C++-Entwickler schon seit anno dazumal ansprechende GUIs entwickelt. Allerdings veränderten sich die Anforderungen der Benutzer – Stichwort iPhone – rapide, was sich natürlich auch auf die Komplexität der hinter einer Benutzerschnittstelle stehenden Logik auswirkt.

Selbstverständlich ist es möglich, derartige Schnittstellen ausschließlich in C++ zu realisieren. Allerdings arten derartige Versuche schnell in Kodierungsorgien aus – viel intelligenter wäre es, wenn man das GUI in einer dafür vorgesehenen Sprache (Stichwort „Domain Specific Language“) entwerfen könnte. Diese muss, ja soll, nicht zum Erstellen komplexer Applikationslogik geeignet sein – das ist eine Aufgabe, die C++ seit jeher gut erfüllt.

Alleinstehendes QML

Im Bereich der QML-Anwendungen gibt es zwei verschiedene Ansätze. Die Standalone-Applikation besteht aus einer qml-Datei, die in einem von Digia vorgegebenen und vom SDK automatisch generierten Viewer angezeigt wird. Die für die meisten Entwickler praxis­tauglichere Alternative ist eine Applikation mit einem einzelnen Formular, in dem eine QDeclarativeView das in QML gehaltene GUI hostet.

Am einfachsten bekommen Sie ein Projekt des zweiten Typs einsatzbereit, indem Sie in Qt Creator ein neues Projekt erstellen und als Vorlage eine Qt-GUI-Anwendung wählen. Quick-Anwendungen basieren auf dem QML Viewer, der sich nur schwer um eigene C++-Logik erweitern lässt.

Nach dem ersten Erstellen müssen Sie die .pro-Datei um die Inklusion des declarative-Moduls erweitern – ohne es können Sie keine QML-Anwendungen einsetzen:

QT += core gui declarative

Im nächsten Schritt müssen Sie der qml-Datei ein „Zuhause“ geben. Dazu öffnen Sie das Formular und weisen ihm ein bildschirmfüllendes QDeclarativeWidget zu. Die zum Erreichen des Resize-Verhaltens erforderlichen Einstellungen des Layoutsystems werden hier aus Platzgründen nicht näher besprochen.

Sodann ist es a...

Entwickler Magazin
Ein Blick auf Qt aus der Sicht eines C++-Entwicklers

Qt lernt JavaScript

Die von Nokia im Rahmen von Qt 4.7 eingeführte Sprache QML hat in der Qt-Gemeinde für Unruhe gesorgt - konservativere Zeitgenossen (wie der Autor dieser Zeilen) hofften sogar darauf, dass das lästige Modephänomen schon bald den Weg alles Irdischen gehen würde.

Tam Hanna


Leider entpuppte sich die Sprache als höchst robust. In Qt 5.0 gilt sie sogar als „Favorit“ für die Entwicklung von mobilen Benutzerschnittstellen. Auch das von RIM entwickelte Cascades lässt sich am besten aus QML heraus ansprechen. Aus diesem Grund wollen wir uns nun die Frage stellen, was QML für alteingesessene Entwickler für Neuerungen bringt.

QML – was ist das?

Hinter der etwas sperrigen Abkürzung verbirgt sich die Abkürzung „Qt Modeling Language“. Damit ist die Aufgabe der Sprache auch schon gut beschrieben – es handelt sich dabei um ein Werkzeug zur Erstellung von Benutzeroberflächen.

Natürlich haben C++-Entwickler schon seit anno dazumal ansprechende GUIs entwickelt. Allerdings veränderten sich die Anforderungen der Benutzer – Stichwort iPhone – rapide, was sich natürlich auch auf die Komplexität der hinter einer Benutzerschnittstelle stehenden Logik auswirkt.

Selbstverständlich ist es möglich, derartige Schnittstellen ausschließlich in C++ zu realisieren. Allerdings arten derartige Versuche schnell in Kodierungsorgien aus – viel intelligenter wäre es, wenn man das GUI in einer dafür vorgesehenen Sprache (Stichwort „Domain Specific Language“) entwerfen könnte. Diese muss, ja soll, nicht zum Erstellen komplexer Applikationslogik geeignet sein – das ist eine Aufgabe, die C++ seit jeher gut erfüllt.

Alleinstehendes QML

Im Bereich der QML-Anwendungen gibt es zwei verschiedene Ansätze. Die Standalone-Applikation besteht aus einer qml-Datei, die in einem von Digia vorgegebenen und vom SDK automatisch generierten Viewer angezeigt wird. Die für die meisten Entwickler praxis­tauglichere Alternative ist eine Applikation mit einem einzelnen Formular, in dem eine QDeclarativeView das in QML gehaltene GUI hostet.

Am einfachsten bekommen Sie ein Projekt des zweiten Typs einsatzbereit, indem Sie in Qt Creator ein neues Projekt erstellen und als Vorlage eine Qt-GUI-Anwendung wählen. Quick-Anwendungen basieren auf dem QML Viewer, der sich nur schwer um eigene C++-Logik erweitern lässt.

Nach dem ersten Erstellen müssen Sie die .pro-Datei um die Inklusion des declarative-Moduls erweitern – ohne es können Sie keine QML-Anwendungen einsetzen:

QT += core gui declarative

Im nächsten Schritt müssen Sie der qml-Datei ein „Zuhause“ geben. Dazu öffnen Sie das Formular und weisen ihm ein bildschirmfüllendes QDeclarativeWidget zu. Die zum Erreichen des Resize-Verhaltens erforderlichen Einstellungen des Layoutsystems werden hier aus Platzgründen nicht näher besprochen.

Sodann ist es a...

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