Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
1 Einleitung
2 Die Programmiersprache Python
Teil I Einstieg in Python
3 Erste Schritte im interaktiven Modus
4 Der Weg zum ersten Programm
5 Kontrollstrukturen
6 Dateien
7 Das Laufzeitmodell
8 Funktionen, Methoden und Attribute
9 Informationsquellen zu Python
Teil II Datentypen
10 Das Nichts – NoneType
11 Operatoren
12 Numerische Datentypen
13 Sequenzielle Datentypen
14 Zuordnungen
15 Mengen
16 Collections
17 Datum und Zeit
18 Aufzählungstypen – Enum
Teil III Fortgeschrittene Programmiertechniken
19 Funktionen
20 Modularisierung
21 Objektorientierung
22 Ausnahmebehandlung
23 Iteratoren
24 Kontextobjekte
25 Manipulation von Funktionen und Methoden
Teil IV Die Standardbibliothek
26 Mathematik
27 Kryptografie
28 Reguläre Ausdrücke
29 Schnittstelle zu Betriebssystem und Laufzeitumgebung
30 Kommandozeilenparameter
31 Dateisystem
32 Parallele Programmierung
33 Datenspeicherung
34 Netzwerkkommunikation
35 Debugging und Qualitätssicherung
36 Dokumentation
Teil V Weiterführende Themen
37 Anbindung an andere Programmiersprachen
38 Distribution von Python-Projekten
39 Grafische Benutzeroberflächen
40 Python als serverseitige Programmiersprache im WWW – ein Einstieg in Django
41 Wissenschaftliches Rechnen
42 Insiderwissen
43 Von Python 2 nach Python 3
A Anhang
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 464 KB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Python 3 von Johannes Ernesti, Peter Kaiser
Das umfassende Handbuch
Buch: Python 3

Python 3
Pfeil 39 Grafische Benutzeroberflächen
Pfeil 39.1 Toolkits
Pfeil 39.2 Einführung in tkinter
Pfeil 39.2.1 Ein einfaches Beispiel
Pfeil 39.2.2 Steuerelementvariablen
Pfeil 39.2.3 Der Packer
Pfeil 39.2.4 Events
Pfeil 39.2.5 Steuerelemente
Pfeil 39.2.6 Zeichnungen – das Canvas-Widget
Pfeil 39.2.7 Weitere Module
Pfeil 39.3 Einführung in PyQt
Pfeil 39.3.1 Installation
Pfeil 39.3.2 Grundlegende Konzepte von Qt
Pfeil 39.3.3 Entwicklungsprozess
Pfeil 39.4 Signale und Slots
Pfeil 39.5 Wichtige Widgets
Pfeil 39.5.1 QCheckBox
Pfeil 39.5.2 QComboBox
Pfeil 39.5.3 QDateEdit, QTimeEdit, QDateTimeEdit
Pfeil 39.5.4 QDialog
Pfeil 39.5.5 QLineEdit
Pfeil 39.5.6 QListWidget, QListView
Pfeil 39.5.7 QProgressBar
Pfeil 39.5.8 QPushButton
Pfeil 39.5.9 QRadioButton
Pfeil 39.5.10 QSlider, QDial
Pfeil 39.5.11 QTextEdit
Pfeil 39.5.12 QWidget
Pfeil 39.6 Zeichenfunktionalität
Pfeil 39.6.1 Werkzeuge
Pfeil 39.6.2 Koordinatensystem
Pfeil 39.6.3 Einfache Formen
Pfeil 39.6.4 Grafiken
Pfeil 39.6.5 Text
Pfeil 39.6.6 Eye Candy
Pfeil 39.7 Model-View-Architektur
Pfeil 39.7.1 Beispielprojekt: ein Adressbuch
Pfeil 39.7.2 Auswählen von Einträgen
Pfeil 39.7.3 Bearbeiten von Einträgen
 
Zum Seitenanfang

39    Grafische Benutzeroberflächen Zur vorigen ÜberschriftZur nächsten Überschrift

Nachdem wir uns bisher ausschließlich mit Konsolenanwendungen beschäftigt haben, also mit Programmen, die über eine rein textbasierte Schnittstelle zum Benutzer verfügen, kann das Kribbeln in den Fingern und damit der Schritt zur grafischen Benutzeroberfläche nicht mehr länger unterdrückt werden. Im Gegensatz zur textorientierten Oberfläche von Konsolenanwendungen sind Programme mit grafischer Oberfläche intuitiver zu bedienen, grafisch ansprechender und werden im Allgemeinen als moderner empfunden. Die grafische Benutzeroberfläche eines Programms, auch GUI (Graphical User Interface) genannt, besteht zunächst aus Fenstern (engl. windows). Innerhalb dieser Fenster lassen sich beliebige Steuerelemente, häufig auch Widgets oder Controls genannt, platzieren. Unter Steuerelementen versteht man einzelne Bedieneinheiten, aus denen sich die grafische Benutzeroberfläche als Ganzes zusammensetzt. So ist beispielsweise eine Schaltfläche (engl. button) oder ein Textfeld ein Steuerelement.

Sowohl die Terminologie als auch die Implementierung einer grafischen Oberfläche hängen sehr stark davon ab, welche Bibliothek, auch Toolkit genannt, verwendet wird. Aus diesem Grund werden wir zunächst verschiedene Toolkits besprechen, die mit Python verwendet werden können, und erst im zweiten Abschnitt zur eigentlichen Programmierung einer grafischen Benutzeroberfläche kommen. Dort behandeln wir zunächst das Modul tkinter, das das Tk-Toolkit verwendet und in der Standardbibliothek enthalten ist. Danach präsentieren wir Ihnen einen projektorientierten Einstieg in das umfangreichere und zeitgemäßere Qt-Framework unter Verwendung von PyQt.

 
Zum Seitenanfang

39.1    Toolkits Zur vorigen ÜberschriftZur nächsten Überschrift

Unter einem Toolkit versteht man eine Bibliothek, mit deren Hilfe sich Programme mit grafischer Benutzeroberfläche erstellen lassen. Neben einigen plattformabhängigen Toolkits, beispielsweise den MFC (Microsoft Foundation Classes) für Windows, sind gerade im Zusammenhang mit Python plattformunabhängige Toolkits wie Qt, Gtk oder wxWidgets interessant. Diese Toolkits sind zumeist für C (Gtk) oder C++ (Qt, wxWidgets) geschrieben, lassen sich jedoch durch sogenannte Bindings auch mit Python ansprechen. Im Folgenden werden die wichtigsten Python-Bindings für GUI-Toolkits aufgelistet und kurz erläutert.

TkInter

Website: http://wiki.python.org/moin/TkInter

Toolkit: Tk

Das Toolkit Tk wurde ursprünglich für die Sprache Tcl (Tool Command Language) entwickelt und ist das einzige Toolkit, das in der Standardbibliothek von Python enthalten ist. Das Modul tkinter (Tk interface) erlaubt es, Tk-Anwendungen zu schreiben, und bietet damit eine interessante Möglichkeit, kleinere Anwendungen mit einer grafischen Benutzeroberfläche zu versehen, für die der Benutzer später keine zusätzlichen Bibliotheken installieren muss. Ein Beispiel für ein Tk-Programm ist die Entwicklungsumgebung IDLE, die jeder Python-Version beiliegt.

Im Anschluss an diese Vorstellung der im Zusammenhang mit Python gängigsten Toolkits finden Sie eine Einführung in die Programmierung grafischer Benutzeroberflächen mit tkinter.

PyGObject

Website: https://pygobject.readthedocs.io

Toolkit: Gtk

Das Toolkit Gtk (GIMP Toolkit) wurde ursprünglich für das Grafikprogramm GIMP entwickelt und zählt heute neben Qt zu den am meisten verbreiteten plattformübergreifenden Toolkits. Sowohl das Toolkit selbst als auch die Python-Bindings PyGtk stehen unter der GNU Lesser General Public License und können frei heruntergeladen und verwendet werden.

Das Gtk-Toolkit ist die Grundlage der freien Desktop-Umgebung GNOME und erfreut sich daher gerade unter Linux-Anwendern einer großen Beliebtheit. Obwohl es eigentlich für C geschrieben wurde, ist Gtk von Grund auf objektorientiert und kann deshalb gut mit Python verwendet werden.

PyQt

Website: https://riverbankcomputing.com

Toolkit: Qt

Bei Qt handelt es sich um ein umfassendes Framework, das von der Firma The Qt Company, entstanden aus der norwegischen Firma Trolltech, entwickelt wird und sowohl ein GUI-Toolkit als auch GUI-fremde Funktionalität enthält. Das durch und durch objektorientierte C++-Framework ist die Basis der freien Desktop-Umgebung KDE (K Desktop Environment) und aus diesem Grund ähnlich verbreitet und beliebt wie das Gtk-Toolkit. Sowohl Qt selbst als auch die Python-Bindings sind unter einem dualen Lizenzsystem erhältlich. Solange Sie Ihre Software unter einer freien Lizenz, beispielsweise der GPL, veröffentlichen, stehen Qt und PyQt unter der GPL. Im Gegensatz zu Qt kann PyQt jedoch nicht unter der LGPL verwendet werden. Für den kommerziellen Gebrauch muss eine Lizenzgebühr entrichtet werden. Qt wird für viele kommerzielle Projekte verwendet, darunter zum Beispiel Google Earth, Mathematica oder die Linux-Versionen von Skype und Spotify.

PySide

Website: http://www.pyside.org

Toolkit: Qt

PySide ist ein weiteres Projekt zur Entwicklung von Python Bindings für das Qt-Framework. PySide ist unter den Bestimmungen der LGPL erhältlich und kann damit sowohl für nicht kommerzielle als auch für kommerzielle Zwecke kostenlos verwendet werden.

PyQt und PySide sind in hohem Maße kompatibel, sodass es häufig ausreicht, die import-Anweisungen zu ändern, um ein PyQt-Programm unter PySide lauffähig zu machen. Diese API-Kompatibilität ist aber nicht vollständig und auch für die Zukunft nicht garantiert.

Zum Zeitpunkt der Drucklegung dieses Buchs gibt es keine zu Qt5 kompatible Version von PySide.

wxPython

Website: http://www.wxpython.org

Toolkit: wxWidgets

Bei wxWidgets, ehemals wxWindows, handelt es sich um ein freies GUI-Toolkit, dessen erste Version bereits 1992 erschienen ist. Das Toolkit ist dementsprechend weit entwickelt und für alle gängigen Plattformen verfügbar. Gerade in Bezug auf Python ist wxWidgets beliebt und gut dokumentiert. Eines der Ziele des wxWidgets-Projekts ist es, das Look & Feel der verschiedenen Plattformen, auf denen das Toolkit lauffähig ist, bestmöglich abzubilden. Dies wird insbesondere dadurch erreicht, dass wxWidgets die Steuerelemente nicht selbst zeichnet, sondern dafür auf die Routinen der jeweiligen Plattform zurückgreift. Sowohl wxWidgets als auch wxPython befinden sich ständig in aktiver Entwicklung.

Eine Version von wxPython für Python 3 ist unter dem Namen »Project Phoenix« in Entwicklung.

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Python 3 Python 3
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Einstieg in Python
Einstieg in Python


Zum Rheinwerk-Shop: Python. Der Grundkurs
Python. Der Grundkurs


Zum Rheinwerk-Shop: Algorithmen mit Python
Algorithmen mit Python


Zum Rheinwerk-Shop: Objektorientierte Programmierung
Objektorientierte Programmierung


Zum Rheinwerk-Shop: Raspberry Pi. Das umfassende Handbuch
Raspberry Pi. Das umfassende Handbuch


Zum Rheinwerk-Shop: Roboter-Autos mit dem Raspberry Pi
Roboter-Autos mit dem Raspberry Pi


Zum Rheinwerk-Shop: Neuronale Netze programmieren mit Python
Neuronale Netze programmieren mit Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern