6. Grafische Benutzeroberflächen mit Qt

Programmieren in C++

Hubert Feyrer <hubert@feyrer.de>

Inhalt

Was ist Qt?

Download

Dokumentation

alt

Tutorial

API Dokumentation

QtDemo

QtDemo

QtDemo

QtDemo

Mehr Demos und Beispiele

[any material that should appear in print but not on the slide]

Erstes Beispiel - Quellcode

Quellcode:

% cd src/tutorial/t1
% cat main.cpp
#include <QApplication>
#include <QPushButton>

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

  QPushButton hello("Hello World");
  hello.resize(100,30);

  hello.show();
  return app.exec();
} 

Erstes Beispiel - Manuell compilieren

Erstes Beispiel - QMake

Um die Projekt-Entwicklung stark zu vereinfachen und portabler zu gestalten empfiehlt es sich dringend, das zu Qt gehörende "qmake" zu verwenden! Dazu ist zuerst mittels "qmake -project" eine QMake-Projekt-Datei (.pro) zu erstellen, die die ganzen Quellen auflistet:

% pwd
/home/feyrer/PGCPP/src/tutorial/t1
% ls
main.cpp
% qmake -project
% 

Erstes Beispiel - QMake Unix / Linux

Erstes Beispiel - QMake Mac OS X

Erstes Beispiel - QMake Windows

Signals und Slots

Signals und Slots

Beispiel:
#include <QApplication>
#include <QPushButton>

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

  QPushButton quit("Quit");
  quit.resize(75,30);
  quit.setFont(QFont("Times", 18, QFont::Bold));

  QObject::connect(&quit, SIGNAL(clicked()),
                   &app, SLOT(quit()));  

  quit.show();
  return app.exec();
} 
(Quellcode)

Signals und Slots

Aufruf:
  QObject::connect(&quit, SIGNAL(clicked()),
                   &app, SLOT(quit()));
Prototyp QObject::connect():
  inline bool connect(const QObject *sender,
                      const char *signal,
                      const char *member,
                      Qt::ConnectionType type =
                        Qt::AutoConnection) const;

Ableitung eigener Klassen

Ableitung eigener Klassen

Layout I

Layout II

Verbinden eigener Objekte

Verbinden eigener Objekte

Eigene Signals & Slots IV

Verbinden eigener Objekte

Verbinden eigener Objekte

Grafik

Animation & Timing

Animation & Kollision

Layout III

Beispiel: Schiebepuzzle

Übungen

Übungen