Tool-Radar: Qt Jambi

Markus Stäuble

Der Name Trolltech, vielmehr deren Oberflächenframework Qt, treibt sicherlich dem einem oder anderem C++-Entwickler eine Freudenträne ins Auge. Schon seit vielen Jahren ist dieses Framework eine Alternative zur MFC (Microsoft Foundation Classes) aus Redmond. Der große Vorteil von Qt ist sicherlich die Verfügbarkeit auf mehreren Plattformen und somit konnte schon vor der Generation Java hiermit eine plattformübergreifende Architektur gestaltet werden.

Java bringt von Hause aus schon mit Swing eine mächtige Möglichkeit zur plattformunabhängigen Realisierung von Oberflächen mit. Neben dieser Variante existiert als Gegenpart hierzu noch das vor allem durch Eclipse bekannt gewordene Framework SWT. Nun schickt sich aber Trolltech an, das erwähnte Qt in das Werkzeugangebot für Java mit aufzunehmen. Der Arbeitstitel für diese Variante ist dabei Qt Jambi.

Qt.begin

Derzeit existiert noch kein Release von Qt Jambi, sondern es steht nur ein Technology Preview zur Verfügung. Aktuell kann dieses Preview kostenfrei für Windows, Linux und Mac OS X heruntergeladen werden. Das Herzstück von Qt Jambi ist die native Implementierung von Qt auf dem jeweiligen System. In der herunterladbaren Distribution ist eine ablauffähige Demoapplikation zur Demonstration der Qt Widgets enthalten. Für einen Einstieg in die Entwicklung mit Qt Jambi steht ein Eclipse-Plug-in zur Verfügung. Dieses Plug-in (Abb. 1) bietet neben einem grafischen Designer noch eine Verbindung mit dem mitgelieferten Kommandozeilenprogramm juic (Java User Interface Compiler). Dieser erzeugt aus der entsprechenden ui-Datei (Beschreibung der Oberfläche in XML) die Java-Klasse.

Abb. 1: Eclipse Plug-in von Qt Jambi
Qt.main

Falls mit dem Eclipse-Plug-in entwickelt wird, muss neben dem Plug-in auch noch das vollständige Qt Jambi-Paket installiert werden. Da die Verbindung über JNI erfolgt, darf bei der Ausführung nicht vergessen werden, dass die nativen Bibliotheken im Pfad liegen müssen (unter Eclipse kann dies bei der Run-Konfiguration im Reiter Environment konfiguriert werden). Mit dem Designer (unter File | New | Other | Qt Jambi) ist sehr schnell eine grafische Klasse erstellt. Falls der juic eingebunden ist, wird automatisch die entsprechende Java-Klasse erstellt. Das verfolgte Prinzip bei den erzeugten Klassen ist dabei nicht Vererbung, sondern es existiert in der generierten Klasse eine öffentliche Methode setupUi. Diese Methode erwartet nun das entsprechende Widget als Parameter (somit eine Art von Dependency Injection) und initialisiert das erstellte Layout. Im folgenden Quellcode ist der Rahmen zum Starten einer generierten Klasse aufgeführt.

QApplication.initialize(args);
QDialog qd = new QDialog();
new Ui_TestDialog().setupUi(qd);
qd.setVisible(true);
QApplication.exec();

Erwähnenswert ist sicherlich noch, dass durch das mitgelieferte API dem Entwickler die Möglichkeit zur Verfügung steht, bereits vorhandene Qt-basierte C++-Komponenten in Java zu verwenden. Diese Möglichkeit ist vor allem interessant, wenn bereits Investitionen in Qt-Komponenten getätigt wurden.

Fazit

Zum Abschluss dieses Artikels soll nochmals betont werden, dass es sich bei Qt Jambi bisher „nur“ um eine Technology Preview handelt und noch keine offizielle Version erhältlich ist. Auch ist noch nicht klar, ob sich Trolltech dazu entschließen wird, ein Release auf den Markt zu bringen. Dies wird sicherlich von der Nachfrage am Markt abhängen. Unabhängig von diesem Punkt wird das kommende Lizenzmodell maßgeblich entscheidend sein, ob Qt Jambi eine Chance gegen Swing und SWT haben wird oder nicht. Interessant in diesem Zusammenhang ist, dass in den FAQs eine Open-Source-Variante angekündigt wird.
Falls dieses Produkt aber kommen wird, ist dies für Entwickler mit C++-Vergangenheit sicherlich eine willkommene Alternative. Zu bemerken bleibt noch, dass das Eclipse-Plug-in noch nicht mit anderen UI-Designern, ob kommerziell oder Open Source, mithalten kann. Vor allem im Bereich des Layout-Managements wäre es wünschenswert, wenn das Plug-in sich noch etwas bei der Konkurrenz (wie z.B. dem SWT Designer) abschauen würde.

Geschrieben von
Markus Stäuble
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.