Qt

Aus Physik
Wechseln zu: Navigation, Suche

Was ist Qt?

Qt ist eine Klassenbibliothek und Entwicklungsumgebung für die plattformübergreifende Programmierung graphischer Benutzeroberflächen (GUI) unter C++. Sie wurde von der norwegischen Firma Trolltech im Jahre 1992 entwickelt. Qt enthält alle Klassen für fast alle gängigen grafischen Eingabeelemente, zum Beispiel für Buttons, Auswahlboxen, Eingabezeilen, und Menülisten, sowie Klassen zur Anordnung dieser Elemente in einem Fenster. Weitere Klassen sind für einen plattformunabhängigen Zugriff auf Dateien, das Ansteuern eines Druckers oder die Erzeugung elementarer Datenstrukturen zuständig.


Qt steht andern berümten Bibliotheken, wie MFC (Microsoft Foundation Classes), in nichts nach. Ganz im Gegenteil. Sie hat viele Vorteile gegenüber MFC:

  • Qt ist Plattformunabhängig. Es gibt Qt in zwei Versionen. Eine Version für X-Server, die auf den meisten gängigen Unix-Systemen lauffähig ist, und eine Version für Microsoft Windows (ab Windows 95). So lassen sich mit der Qt-Bibliothek Programme entwickeln, die sowohl unter Windows als auch unter dem meisten Unix-Systemen lauffähig sind. Dazu muss der Quelltext des Programms meist nur auf dem entsprechenden System kompiliert werden.
  • Qt enthält die Klasse "QGL", die das Arbeiten mit OpenGL erleichtern. Dies ermöglicht dem Entwickler hervoragende 3D-Programme mit wenig Aufwand zu entwickeln.
  • Für Entwickelung freier Software bietet die Firma Trolltech die Möglichkeit, die Qt-Version für X-Server kostenlos zu nutzen.
  • Man findet sehr gute Literatur die Kostenlos erhältlich sind.

Qt Designer

Der Qt Designer ist ein Tool für das Entwickeln und implementieren von user interfaces. Mit dem Qt Designer lassen sich ganz leicht Fenster (mit Buttons, Eingabezeilen, Menülisten usw.) erstellen. Schau dir am besten dazu das einfache Beispiel "Metric Conversion" an.

Vielleicht ist es Erwähnenswert, dass Qt und Qt Designer im Computerraum Physik installiert sind.

Einbinden der Lib

Die einfachste (und am leichtesten portierbare) Variante ist folgende Zeilen als auszuwertende Befehle (Backquotes) in das Makefile einzubauen:

pkg-config --cflags qt-mt 
pkg-config --libs qt_mt

wobei die erste zu den Compileroptionen gehört und die zweite zu den Linkeroptionen.

Ein Minimalst-Makefile, welches zwar nur ein File (main.cpp) verarbeitet aber z.B. als Ausgangsbasis für ein Projekt mit QT-Oberfläche verwendet werden kann, könnte so aussehen:

OBJS = main.o 

CC = g++
LD = g++
CC_FLAGS = -c -g -Wall `pkg-config --cflags qt-mt`
LD_FLAGS = -o $(EXECUTABLE) `pkg-config --libs qt-mt`
EXECUTABLE = mini

mini: $(OBJS)
    $(LD) $(LD_FLAGS) $(OBJS)

main.o: main.cpp 
    $(CC) $(CC_FLAGS) main.cpp

all: mini 

clean: rm $(OBJS) $(EXECUTABLE)

Hello World Programm

Entnommen aus einem Tutorial von Trolltech

#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );

    a.setMainWidget( &hello );
    hello.show();
    return a.exec();
}

PyQt

Die britische Firma Riverbank Computing Ltd. hat unter dem Namen PyQt eine Python API entwickelt, die zu ähnlichen Bedingungen wie Qt erhältlich ist (GPL'ed kostenlos unter Linux, sonst kommerziell).

Links

Literatur

[BLANCHETTE] by Jasmin Blanchette, Mark Summerfield; "C++ GUI Programming with Qt 3";
  Das Buch wurde von zwei Entwicklern der Firma Trolltech geschrieben die am Projekt Qt mitgearbeitet haben. Es wird "Online" eine freie Version zum Download (22 MB) angeboten. Entschließt man sich zum Kauf dieses Buches, so erhält man zusätzlich eine CD mit sämtlichen Beispielen aus dem Buch, eine Qt 3.2 Non-Commercial Edition für Windows, Borland C++ 5.5 Non-Commercial Edition, Borland C++ 6.0 Trial Edition, Qt 3.2 Free Editions for Unix/Linux/Mac OS X und SQLite database.