Qt: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
   
   
Qt hängt andern berümten Bibliotheken, wie MFC (Microsoft Foundation Classes), in nichts nach. Ganz im Gegenteil. Sie hat viele Vorteile gegenüber MFC:
+
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 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.
+
* 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.
 
* Für Entwickelung freier Software bietet die Firma Trolltech die Möglichkeit, die Qt-Version für X-Server kostenlos zu nutzen.
Zeile 17: Zeile 17:
 
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 [http://doc.trolltech.com/3.3/designer-manual-2.html "Metric Conversion"] an.
 
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 [http://doc.trolltech.com/3.3/designer-manual-2.html "Metric Conversion"] an.
   
Vielleicht ist es Erwähnenswert, dass Qt und Qt Designer im Computerraum installiert sind
+
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 (<tt>main.cpp</tt>) 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 [http://doc.trolltech.com/3.3/tutorial1-01.html 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 ==
 
== Links ==
   
* [http://www.trolltech.com/products/qt/ "Seite zu Qt von der Firma Trolltech"]: Auf diese findet man ein sehr gute [http://doc.trolltech.com/3.3/index.html "Dokumentation"], zahlreiche [http://doc.trolltech.com/3.3/designer-manual-2.html "Beispiele"] und Downloads zu Qt.
+
* [http://www.trolltech.com/products/qt/ "Seite zu Qt von der Firma Trolltech"]: Auf dieser findet man eine sehr gute [http://doc.trolltech.com/3.3/index.html "Dokumentation"], zahlreiche Beispiele und Downloads zu Qt.
   
 
== Literatur ==
 
== Literatur ==
Zeile 29: Zeile 75:
 
|-
 
|-
 
| &nbsp;
 
| &nbsp;
| Das Buch wurde von zwei Entwicklern der Firma Trolltech geschrieben die am Projekt Qt mitgearbeitet haben. Es wird [http://phptr.com/content/images/0131240722/downloads/blanchette_book.pdf "Online"] eine frei Version zum Download (22 MB) angeboten. Entschließt man sich zu Kauft dieses Buches, so erhält man zusätzlich eine CD mit sämtlichen Beispiel 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.
+
| Das Buch wurde von zwei Entwicklern der Firma Trolltech geschrieben die am Projekt Qt mitgearbeitet haben. Es wird [http://phptr.com/content/images/0131240722/downloads/blanchette_book.pdf "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.
 
|}
 
|}

Aktuelle Version vom 30. Juli 2006, 22:02 Uhr

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.