© best_vector/Shutterstock.com
Windows Developer
Mit Qt Apps für alle Betriebssysteme erstellen

Qt schlägt zurück

Wenige Wochen nach Erscheinen des Windows Phone 7 SDKs ärgerte ein Troll die von Symbian migrierende Entwicklerschaft mit einem als MSQt bezeichneten Hoax. Mittlerweile ist Qt wirklich für Windows Phone verfügbar - allerdings nur für Geräte mit Betriebssystemen in der Version Windows Phone 8.1.

Tam Hanna


Mit MSQt ergibt sich eine im Mobilmarkt einzigartige Situation. Intelligent aufgebaute Applikationen können mit einem Klick auf mehrere Betriebssysteme portiert werden; neben Android, iOS und Windows Phone stehen Apps und Games auch unter BB10, Sailfish OS, Tizen und diversen Desktopplattformen zur Verfügung.

Im Unternehmen des Autors gibt es ein Special-Interest-Programm, das aus einer Codebasis heraus Stand­alone-Clients für Windows, Serverversionen für diverse Einplatinencomputer und einen Thin-Client für ein Embedded-Linux generiert.

Vorteile von Qt

Das von Nokia zwecks Vereinheitlichung der Entwicklerangebote aufgekaufte Cross-Platform-Framework unterscheidet sich von PhoneGap und Co. dadurch, dass es voll native Applikationen generiert. Diese auf den ersten Blick unmöglich klingende Leistung ist der Verdienst eines als qmake bezeichneten Werkzeugs (Abb. 1).

Abb. 1: Dank qmake werden Qt-Applikationen vom normalen Compiler des Zielsystems verarbeitet

moc analysiert die Struktur des Projekts und generiert daraus eine Gruppe von für den nativen Compiler verständlichen Makefiles. Diese werden – je nach Einstellung und Lizenzart – dynamisch oder statisch mit den Qt-Bibliotheken verlinkt, was zu einem nicht von einer nativen Applikation unterscheidbaren Kompilat führt.

Die Syntax von Qt geht an einigen Stellen nicht mit der für C++ klassischen konform. Ein als Meta-Object-Compiler bezeichnetes Werkzeug sorgt während der Kompilation dafür, dass dieser in Makroform vorliegende Code durch Standard-C++ ersetzt wird.

Die enge Integration zwischen Betriebssystem und Framework sorgt dafür, dass der Zugriff auf native APIs sehr einfach vonstattengeht. Wir wollen uns dies anhand von folgendem Snippet ansehen, das ein natives Symbian-API aus dem Konstruktor eines Qt-Objekts heraus anspricht (Listing 1).

Listing 1QtBallZ::QtBallZ(QWidget *parent) : QMainWindow(parent){ ui.setupUi(this);  // lock orientation – S60 code CAknAppUi* appUi = dynamic_cast(CEikonEnv::Static()->AppUi()); if(appUi){ QT_TRAP_THROWING(appUi ->SetOrientationL( CAknAppUi::EAppUiOrientationLandscape)); } // Qt code ApplicationPrefs::initPrefs(); this->showFullScreen(); myTimerID=startTimer(75);}

Wer einmal mit PhoneGap gearbeitet hat, weiß die Vorteile dieser Architektur sofort zu schätzen. Das nervenaufreibende Hantieren mit Plug-ins fällt bei C-basierten Betriebssystemen weg: Es genügt, dem System ein durch #ifdef-Flags abgesichertes natives Codestück vorzusetzen. Androi...

Windows Developer
Mit Qt Apps für alle Betriebssysteme erstellen

Qt schlägt zurück

Wenige Wochen nach Erscheinen des Windows Phone 7 SDKs ärgerte ein Troll die von Symbian migrierende Entwicklerschaft mit einem als MSQt bezeichneten Hoax. Mittlerweile ist Qt wirklich für Windows Phone verfügbar - allerdings nur für Geräte mit Betriebssystemen in der Version Windows Phone 8.1.

Tam Hanna


Mit MSQt ergibt sich eine im Mobilmarkt einzigartige Situation. Intelligent aufgebaute Applikationen können mit einem Klick auf mehrere Betriebssysteme portiert werden; neben Android, iOS und Windows Phone stehen Apps und Games auch unter BB10, Sailfish OS, Tizen und diversen Desktopplattformen zur Verfügung.

Im Unternehmen des Autors gibt es ein Special-Interest-Programm, das aus einer Codebasis heraus Stand­alone-Clients für Windows, Serverversionen für diverse Einplatinencomputer und einen Thin-Client für ein Embedded-Linux generiert.

Vorteile von Qt

Das von Nokia zwecks Vereinheitlichung der Entwicklerangebote aufgekaufte Cross-Platform-Framework unterscheidet sich von PhoneGap und Co. dadurch, dass es voll native Applikationen generiert. Diese auf den ersten Blick unmöglich klingende Leistung ist der Verdienst eines als qmake bezeichneten Werkzeugs (Abb. 1).

Abb. 1: Dank qmake werden Qt-Applikationen vom normalen Compiler des Zielsystems verarbeitet

moc analysiert die Struktur des Projekts und generiert daraus eine Gruppe von für den nativen Compiler verständlichen Makefiles. Diese werden – je nach Einstellung und Lizenzart – dynamisch oder statisch mit den Qt-Bibliotheken verlinkt, was zu einem nicht von einer nativen Applikation unterscheidbaren Kompilat führt.

Die Syntax von Qt geht an einigen Stellen nicht mit der für C++ klassischen konform. Ein als Meta-Object-Compiler bezeichnetes Werkzeug sorgt während der Kompilation dafür, dass dieser in Makroform vorliegende Code durch Standard-C++ ersetzt wird.

Die enge Integration zwischen Betriebssystem und Framework sorgt dafür, dass der Zugriff auf native APIs sehr einfach vonstattengeht. Wir wollen uns dies anhand von folgendem Snippet ansehen, das ein natives Symbian-API aus dem Konstruktor eines Qt-Objekts heraus anspricht (Listing 1).

Listing 1QtBallZ::QtBallZ(QWidget *parent) : QMainWindow(parent){ ui.setupUi(this);  // lock orientation – S60 code CAknAppUi* appUi = dynamic_cast(CEikonEnv::Static()->AppUi()); if(appUi){ QT_TRAP_THROWING(appUi ->SetOrientationL( CAknAppUi::EAppUiOrientationLandscape)); } // Qt code ApplicationPrefs::initPrefs(); this->showFullScreen(); myTimerID=startTimer(75);}

Wer einmal mit PhoneGap gearbeitet hat, weiß die Vorteile dieser Architektur sofort zu schätzen. Das nervenaufreibende Hantieren mit Plug-ins fällt bei C-basierten Betriebssystemen weg: Es genügt, dem System ein durch #ifdef-Flags abgesichertes natives Codestück vorzusetzen. Androi...

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