Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by haas.homelinux.net...

Inhaltsverzeichnis
1 Einleitung
2 Überblick über Python
3 Die Arbeit mit Python
4 Der interaktive Modus
5 Grundlegendes zu Python-Programmen
6 Kontrollstrukturen
7 Das Laufzeitmodell
8 Basisdatentypen
9 Benutzerinteraktion und Dateizugriff
10 Funktionen
11 Modularisierung
12 Objektorientierung
13 Weitere Spracheigenschaften
14 Mathematik
15 Strings
16 Datum und Zeit
17 Schnittstelle zum Betriebssystem
18 Parallele Programmierung
19 Datenspeicherung
20 Netzwerkkommunikation
21 Debugging
22 Distribution von Python-Projekten
23 Optimierung
24 Grafische Benutzeroberflächen
25 Python als serverseitige Programmiersprache im WWW mit Django
26 Anbindung an andere Programmiersprachen
27 Insiderwissen
28 Zukunft von Python
A Anhang
Stichwort

Download:
- ZIP, ca. 4,8 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Python von Peter Kaiser, Johannes Ernesti
Das umfassende Handbuch - Aktuell zu Python 2.5
Buch: Python

Python
gebunden, mit CD
819 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1110-9
Pfeil 24 Grafische Benutzeroberflächen
  Pfeil 24.1 Toolkits
  Pfeil 24.2 Einführung in PyQt
    Pfeil 24.2.1 Installation
    Pfeil 24.2.2 Grundlegende Konzepte von Qt
  Pfeil 24.3 Entwicklungsprozess
    Pfeil 24.3.1 Erstellen des Dialogs
    Pfeil 24.3.2 Schreiben des Programms
  Pfeil 24.4 Signale und Slots
  Pfeil 24.5 Überblick über das Qt-Framework
  Pfeil 24.6 Zeichenfunktionalität
    Pfeil 24.6.1 Werkzeuge
    Pfeil 24.6.2 Koordinatensystem
    Pfeil 24.6.3 Einfache Formen
    Pfeil 24.6.4 Grafiken
    Pfeil 24.6.5 Text
    Pfeil 24.6.6 Eye-Candy
  Pfeil 24.7 Model-View-Architektur
    Pfeil 24.7.1 Beispielprojekt: Ein Adressbuch
    Pfeil 24.7.2 Auswählen von Einträgen
    Pfeil 24.7.3 Editieren von Einträgen
  Pfeil 24.8 Wichtige Widgets
    Pfeil 24.8.1 QCheckBox
    Pfeil 24.8.2 QComboBox
    Pfeil 24.8.3 QDateEdit
    Pfeil 24.8.4 QDateTimeEdit
    Pfeil 24.8.5 QDial
    Pfeil 24.8.6 QDialog
    Pfeil 24.8.7 QGLWidget
    Pfeil 24.8.8 QLineEdit
    Pfeil 24.8.9 QListView
    Pfeil 24.8.10 QListWidget
    Pfeil 24.8.11 QProgressBar
    Pfeil 24.8.12 QPushButton
    Pfeil 24.8.13 QRadioButton
    Pfeil 24.8.14 QScrollArea
    Pfeil 24.8.15 QSlider
    Pfeil 24.8.16 QTableView
    Pfeil 24.8.17 QTableWidget
    Pfeil 24.8.18 QTabWidget
    Pfeil 24.8.19 QTextEdit
    Pfeil 24.8.20 QTimeEdit
    Pfeil 24.8.21 QTreeView
    Pfeil 24.8.22 QTreeWidget
    Pfeil 24.8.23 QWidget


Galileo Computing - Zum Seitenanfang

24.2 Einführung in PyQt  Zur nächsten ÜberschriftZur vorigen Überschrift

Sie haben aus der vorangegangenen Zusammenfassung bereits einen groben Überblick darüber, was das Framework Qt (sprich cute, dt. pfiffig) und damit auch die Python-Bindings PyQt ausmacht. Dieser grobe Überblick soll hier nun verfeinert werden, und wir werden die Konzepte und Stärken von Qt vor allem von der technischen Seite her beleuchten.

Dazu beschäftigen wir uns im nächsten Abschnitt zunächst mit der Frage, wo und wie Qt und PyQt bezogen und installiert werden können. Danach geben wir eine Übersicht über die grundlegenden Konzepte des Qt-Frameworks.


Galileo Computing - Zum Seitenanfang

24.2.1 Installation  Zur nächsten ÜberschriftZur vorigen Überschrift

Um Qt-Anwendungen mit Python schreiben zu können, müssen zwei Komponenten installiert werden: das Qt-Framework und die zugehörigen Python-Bindings für dieses. Sollten Sie beides noch nicht auf Ihrem PC installiert haben und ein Windows-Betriebssystem einsetzen, können Sie das Komplettpaket von der Website des PyQt-Entwicklers unter http://www.riverbankcomputing.com herunterladen. Eine Qt-Installation ist dann nicht mehr vonnöten. Neben Qt und PyQt ist in diesem Komplettpaket auch die Entwicklungsumgebung Eric enthalten, mit der sich sehr komfortabel PyQt-Anwendungen schreiben lassen. Da wir Sie nicht auf eine bestimmte IDE festnageln möchten, werden wir Eric [Weitere Informationen über Eric und andere Entwicklungsumgebungen finden Sie im Anhang. ] für die folgenden Beispielprojekte nicht verwenden. Alternativ können Sie PyQt von der CD installieren, die diesem Buch beiliegt.

Wenn aus gewissen Gründen das Komplettpaket für Sie nicht in Frage kommt, beispielsweise weil Sie Linux einsetzen, können Qt und PyQt getrennt voneinander installiert werden. Qt kann auf der Website http://www.trolltech.com von Trolltech unter Developer ZoneDownloadsQt kostenlos heruntergeladen werden. Alternativ können Sie Qt von der CD installieren, die diesem Buch beiliegt.

Beachten Sie noch mal, dass Qt und PyQt unter einem dualen Lizenzsystem stehen. Projekte, die Sie mit den angebotenen freien Versionen von Qt und PyQt entwickeln, dürfen Sie nur unter einer ebenfalls freien Lizenz, beispielsweise der GPL, veröffentlichen. Um ein kommerzielles Programm veröffentlichen zu dürfen, muss eine Lizenzgebühr entrichtet werden.


Hinweis
Sollten Sie während der Installation von Qt eine Warnung bekommen, dass keine MinGW-Installation auf Ihrem Rechner gefunden wurde, können Sie diese ignorieren, sofern Sie ausschließlich mit PyQt arbeiten möchten. MinGW ist eine freie Compilerdistribution für C und C++.



Galileo Computing - Zum Seitenanfang

24.2.2 Grundlegende Konzepte von Qt  topZur vorigen Überschrift

Als Einführung in die Programmierung mit Qt bzw. PyQt soll in diesem Abschnitt eine Übersicht über die wichtigsten Konzepte und Stärken des Qt-Frameworks gegeben werden.

Umfang

Eine der größten Stärken von Qt ist der Funktionsumfang des Frameworks. Ihnen wird bereits aufgefallen sein, dass im Zusammenhang mit Qt nicht von einem Toolkit, sondern von einem Framework gesprochen wurde. Das hängt damit zusammen, dass der überwiegende Anteil an Klassen, die das Qt-Framework enthält, nichts mit der Programmierung grafischer Benutzeroberflächen zu tun hat, sondern anderweitige nützliche Funktionalität bereitstellt. So enthält das Qt-Framework beispielsweise Klassen zum Arbeiten mit XML-Daten oder zur Netzwerkkommunikation. Viele dieser Klassen sind zwar in Kombination mit Python aufgrund der Standardbibliothek faktisch überflüssig, bieten aber in Programmiersprachen wie C++, das über keine so umfangreiche Standardbibliothek verfügt, einen erheblichen Mehrwert.

Signale und Slots

Einer der größten Unterschiede zu anderen GUI-Toolkits ist das Signal-und-Slot-Prinzip, das Qt zur Kommunikation einzelner Objekte untereinander einsetzt. Bei jedem Ereignis, das in einem Qt-Objekt auftritt, beispielsweise beim Anklicken eines Buttons, wird ein sogenanntes Signal gesendet, das dann von verbundenen Slots empfangen werden kann. Diese Form der Kommunikation wird bei anderen Toolkits häufig durch Callback-Funktionen implementiert, was zwar effizienter ist, jedoch auch einige Nachteile mit sich bringt.

Näheres zum Signal-und-Slot-Prinzip erfahren Sie in Abschnitt 24.4.

Layouts

Das Qt-Framework unterstützt sogenannte Layouts in der grafischen Oberfläche eines Programms. Mithilfe eines Layouts lassen sich Steuerelemente relativ zueinander automatisch positionieren. Diese Gruppe von Steuerelementen kann dann gemeinsam verschoben oder in der Größe verändert werden, ohne ihre relativen Positionen zueinander zu verlieren.

Näheres zu Layouts erfahren Sie in Abschnitt 24.3.1.

Zeichenfunktionen

Qt stellt umfangreiche Funktionalität zum Zeichnen in der grafischen Benutzeroberfläche bereit. So erlaubt Qt das Zeichnen verschiedenster Formen mit verschiedensten Arten der Füllung oder des Linienstils. Darüber hinaus bietet Qt Möglichkeiten zur Transformation von Zeichnungen mithilfe einer Transformationsmatrix, was erstaunliche Effekte ermöglicht und wodurch sich Qt von vielen anderen GUI-Toolkits abhebt. Außerdem ist die Integration einer 3D-OpenGL-Szene in eine grafische Benutzeroberfläche mittels Qt sehr einfach. Dadurch könnte beispielsweise ein Anzeigeprogramm für 3D-Modelle sehr komfortabel in Qt geschrieben werden.

Darüber hinaus ermöglicht Qt das Lesen und Schreiben vieler Grafikformate, darunter vor allem auch des Vektorformats SVG.

Näheres zum Zeichnen mittels Qt erfahren Sie in Abschnitt 24.6.

Das Model-View-Konzept

Qt implementiert das sogenannte Model-View-Konzept, das eine Trennung von Form und Inhalt ermöglicht. So ist es mittels Qt möglich, die Daten, die ein Programm verarbeitet, in einer eigenen Klassenstruktur zu speichern – getrennt von der Funktionalität, die diese Daten anzeigt. Auf diese Weise wird der Programmaufbau insgesamt übersichtlicher, und die unabhängige Weiterentwicklung und Wiederverwertung einzelner Komponenten wird erleichtert.

Näheres zum Model-View-Konzept erfahren Sie in Abschnitt 24.7.

Behindertengerechte Oberflächen

Qt bietet als eines der wenigen Frameworks umfassende Unterstützung zum Schreiben barrierefreier Benutzeroberflächen. So arbeitet Qt mit den Technologien der drei größten Desktop-Betriebssysteme Windows, Linux und Mac OS X zusammen, um Programme mit grafischer Benutzeroberfläche für Menschen bedienbar zu machen, die aufgrund einer Behinderung sonst nicht dazu in der Lage wären.

Dieses Thema ist sehr speziell, weswegen wir im Folgenden nicht näher darauf eingehen werden. Sollten Sie daran interessiert sein, behindertengerechte Qt-Anwendungen zu schreiben, finden Sie Anleitungen dazu auf der Trolltech-Website unter dem Stichwort Accessibility.

Tools

Der nächste herausragende Bereich von Qt sind die mitgelieferten Tools. Bei einer Qt-Installation werden für gewöhnlich die Programme Qt Designer, Qt Assistant und Qt Linguist mit installiert. Ersteres ist ein Programm zum komfortablen Editieren einer grafischen Benutzeroberfläche. Wir werden im Laufe dieses Kapitels noch auf den Qt Designer zurückkommen.

Die ebenfalls mit gelieferten Tools Qt Assistant und Qt Linguist werden in diesem Buch nicht besprochen. Es sei nur erwähnt, dass es sich bei Qt Assistant um ein Tool zum Lesen der Qt-Hilfe und bei Qt Linguist um ein Hilfsmittel zur Lokalisierung von Qt-Anwendungen handelt.

Dokumentation

Als letzter Punkt ist die Dokumentation des Qt-Frameworks zu nennen, die entweder Ihrer Qt-Installation beiliegt oder im Internet auf der Website des Qt-Herstellers Trolltech zu finden ist. Die Qt-Dokumentation ist sehr umfangreich und mit vielen Beispielen versehen. Zudem finden Sie zahlreiche Beispielprogramme, die unterschiedliche Anwendungsgebiete von Qt abdecken.

Mit der PyQt-Installation erhalten Sie zudem eine auf Python abgestimmte Version der Qt-Dokumentation, in der alle Schnittstellen und ein Teil der Beispiele für Python beschrieben werden. Auch diese Dokumentation ist mittlerweile umfangreich genug, um mit ihr arbeiten zu können. Beachten Sie, dass in der PyQt-Dokumentation viele Beispiele noch nicht von C++ nach Python übersetzt worden sind.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Python






Python
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Praxisbuch Web 2.0






 Praxisbuch Web 2.0


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Praxisbuch Objektorientierung






 Praxisbuch Objektorientierung


Zum Katalog: Einstieg in SQL






 Einstieg in SQL


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo