Python und Qt – PyQt4

Im Studium durfte ich dieses Semester Python lernen, genauer gesagt Python in Version 2.5. Wie ich finde ist diese Sprache um einiges einfacher, schöner und vor allem schneller zu erlernen als beispielsweise Java. Nun gut, für das Praktikum in Programmieren dieses Jahr musste ich gerade Qt lernen in Verbindung mit Python, das Modul pflegt den Namen PyQt4.

Opensource

Ich möchte euch nun ein kleinen Überblick über Qt vor allem Qt4, Python und PyQt4 geben. Und wie das ganze auf einem Linux Rechner mit Kubuntu 9.10 installiert wird.

über Qt

Qtlogo
Qt Logo

Qt hat aktuelles Look & Feel, läuft auf so gut wie allen Systemen und ist gar nicht so schwer zu erlernen. Was dazu kommt, Qt gibt es unter 3 verschiedenen Lizenzen zu erwerben. Eine davon ist GPL v3. Das heißt frei und für jedermann zugänglich.

Also was ist Qt? Ganz einfach:

Qt ist ein Cross-Plattform-Anwendungs-und UI-Framework. Mit Qt können Sie Web-Anwendungen schreiben und diese bereitstellen über Desktop-, Mobil-und Embedded-Betriebssysteme ohne das Sie den Source-Code umschreiben müssen.

Merkmale von Qt:

  • Intuitive C + + Klassenbibliothek
  • Portabilität auf Desktop-und Embedded-Betriebssystemen
  • Integrierte Entwicklungs-Tools mit Cross-Plattform-IDE
  • Hohe Laufzeit-Performance und geringen Platzbedarf für eingebettete Systeme

über Python

Python Logo
Python Logo

Python ist eine erfolgreiche Skriptsprache. Ursprünglich entwickelt von Guido van Rossum wurde Python erstmalig 1991 veröffentlicht. Dabei wurde van Rossum von den Programmiersprachen ABC und Haskell inspiriert. Python ist eine Allzweck-, Multiplattform- und Interpretersprache. Manche ziehen es vor, es eine dynamische Sprache zu nennen. Python ist eine minimalistische, leicht zu lernende Sprache, deren sichtbarste Eigenschaft das Fehlen der Semikolons und Klammern ist. Statt dessen verwendet Python Zeileneinrückung. Die aktuell meist verwendeten Versionen von Python sind 2.5 und 2.6. Die 2008 herausgegebene Version 3 ist nicht abwärtskompatibel, sodass alle davor entwickelten Anwendungen und Bibliotheken angepasst werden müssen, weswegen noch einige Jahren vergehen werden, bis Python 3 zum allgemeinen Standard der Entwickler werden wird. Heute wird Python von einer großen Gemeinde von Freiwilligen gepflegt und weiterentwickelt.

Der TIOBE Programming Community Index gibt uns eine Ahnung von der theoretischen Bedeutung verschiedener Programmiersprachen. An der Spitze steht hier Java, während C++ vom Thron gestoßen wurde. Allerdings wird C++ seine Bedeutung in seinen Stammgebieten über die nächsten Jahrzehnte hinweg bereichen und scheint keiner ernsten Bedrohung ausgesetzt zu sein. Tatsächlich ist eine deutliche Spezialisierung unter den Programmiersprachen zu erkennen. Java kommt vorwiegend bei Projekten in Unternehmen und bei portablen Geräten zum Einsatz, C ist führend beim Programmieren auf Systemebene (Betriebssystem, Treiber, Mini-Anwendungen), PHP gibt bei den kleinen bis mittleren Webprojekten den Ton an, während Javascript diese Rolle auf der Client-Seite der Webanwendungen inne hat.

Python steht aktuell auf Rang 7. Auch Ruby hat es mittlerweile in die Spitzenliste geschafft und ist somit gemeinsam mit Perl einer der engsten Konkurrenten von Python.

über PyQt4

PyQt ist ein Toolkit zur Erstellung von Anwendungen mit grafischer Oberfläche (GUI). Es ist die Verbindung der Python Programmiersprache und die erfolgreiche Qt-Bibliothek, eine der einflussreichsten Bibliotheken der Welt. Wenn nicht die einflussreichste. Die offizielle Homepage von PyQt finden Sie unter www.riverbankcomputing.co.uk. Entwickelt wurde sie von Phil Thompson.

PyQt wurde als eine Reihe von Python-Modulen umgesetzt. Es enthält über 300 Klassen und beinahe 6000 Funktionen und Methoden. Es steht auf diversen Plattformen zur Verfügung und läuft auf allen bedeutenden Betriebssystemen inkl. Unixoide wie Linux, Windows und Mac. PyQt wurde dual lizenziert: Entwickler können zwischen der GPL und einer kommerziellen Lizenz wählen. Anfangs war die GPL-Version ausschließlich unter Unixoiden verfügbar, seit Version 4 gibt es sie für alle unterstützten Plattformen.

Wegen der großen Zahl verfügbarer Klassen wurden diese auf verschiedene Module aufgeteilt.

PyQt Modules
Module in PyQt

Die QtCore-Module enthalten die wesentliche nicht-grafische Funktionalität. Das Modul dient der Verarbeitung von Zeitangaben, Dateien und Verzeichnissen, verschiedenen Datentypen, Streams, URLs, mime-Typen, Threads oder Prozessen. Das QtGui-Modul enthält die grafischen Komponenten und damit verbundene Klassen, welche zum Beispiel Knöpfe, Fenster, Statusleisten, Werkzeugleisten, Schieberegler, Bitmaps, Farben, Schriften usw. enthalten. Das Qt-Network--Modul enthält die Klassen für die Netzwerk-Programmierung. Sie erlauben das Schreiben von TCP/IP- und UDP-Clients und -Servern. So wird Netzwerkprogrammierung einfacher und leichter portierbar. Das QtXml-Modul enthält Klassen zur Verarbeitung von XML-Dateien und bietet Implementierungen von sowohl SAX als auch DOM APIs. Das QtSvg-Modul bringt Klassen zur Darstellung von SVG. Skalierbare Vektorgrafiken sind eine Sprache zur Beschreibung zweidimensionaler Grafiken und grafischer Anwendungen in XML. Das QtOpengl-Modul wird zum Rendern von 3D- und 2D-Grafiken unter Verwendung der OpenGL-Bibliothek verwendet. Das Modul verbindet die QtGui-Bibliothek nahtlos mit der OpenGL-Bibliothek. Das QtSql-Modul schließlich beinhaltet Klassen für die Arbeit mit Datenbanken.

Installation von Python und Qt sowie PyQt4 unter Kubuntu 9.10

Python sollte eigentlich Standardmäßig unter Kubuntu installiert sein, da viele Systemkomponenten ebenfalls Python benötigen. Der Befehl

sudo apt-get install python

installiert eine Reihe von Standard Bibliotheken von Python. Wer Python ausprobieren will kann einfach mal eine interaktive Python Sitzung starten. Man gebe nur folgendes in die Konsole ein

python

So nun dürft ihr ein wenig spielen damit 🙂

Qt installiert man wie folgt

sudo apt-get install libqt4-core libqt4-dev qt4-dev-tools qt4-designer qt4-doc

damit habt ihr das Programm designer, die Programmbibliotheken und die Dokumentation (sehr wichtig!).

Als letztes benötigt ihr noch das Python Modul PyQt4 um Python mit Qt zu koppeln.

sudo apt-get install python-qt4

Nachdem ihr alles installiert habt, könnt ihr endlich los legen tolle Sachen zu basteln. Liest euch das Tutorial durch, das ich oben verlinkt habe, und ihr werdet schnell merken, wie einfach und intuitiv Python & Qt eigentlich ist. Viel Spaß dabei