PyQt ist eine Python-Bindung des plattformübergreifenden GUI-Toolkits Qt, die als Python-Plug-In implementiert ist. PyQt ist freie Software, die von der britischen Firma Riverbank Computing entwickelt wurde. Es ist unter ähnlichen Bedingungen zu Qt-Versionen vor 4.5 verfügbar; Dies bedeutet eine Vielzahl von Lizenzen einschließlich der GNU General Public License (GPL) und der kommerziellen Lizenz, nicht jedoch der GNU Lesser General Public License (LGPL). [4] PyQt unterstützt Microsoft Windows sowie verschiedene UNIX-Varianten, darunter Linux und MacOS ( oder Darwin). [5]
PyQt implementiert rund 440 Klassen und über 6.000 Funktionen und Methoden [6] darunter:
Um diese Bindungen automatisch zu generieren, entwickelte Phil Thompson das Tool SIP, das auch in anderen Projekten verwendet wird.
Im August 2009 veröffentlichte Nokia, die damaligen Besitzer des Qt-Toolkits, PySide und stellte ähnliche Funktionen bereit. Unter der LGPL [9] gelang es jedoch nicht, mit Riverbank Computing [10] eine Vereinbarung zur Änderung seiner Lizenzbedingungen zu treffen LGPL als alternative Lizenz einschließen.
PyQt-Hauptkomponenten [ edit ]
PyQt4 enthält die folgenden Python-Module.
- Das Modul QtCore enthält die wichtigsten Nicht-GUI-Klassen, einschließlich der Ereignisschleife und des Signal- und Schlitzmechanismus von Qt. Es enthält auch plattformunabhängige Abstraktionen für Unicode, Threads, zugeordnete Dateien, Shared Memory, reguläre Ausdrücke sowie Benutzer- und Anwendungseinstellungen.
- Das Modul QtGui enthält die Mehrheit der GUI-Klassen. Dazu gehören eine Reihe von Tabellen-, Baum- und Listenklassen, die auf dem Entwurfsmuster Modell-Ansicht-Controller basieren. Außerdem wird ein hochentwickeltes 2D-Zeichenflächen-Widget bereitgestellt, das Tausende von Elementen einschließlich gewöhnlicher Widgets speichern kann.
- Das Modul QtNetwork enthält Klassen zum Schreiben von UDP- und TCP-Clients und -Servern. Es enthält Klassen, die FTP- und HTTP-Clients implementieren und DNS-Suchvorgänge unterstützen. Netzwerkereignisse sind in die Ereignisschleife integriert, um die Entwicklung vernetzter Anwendungen zu vereinfachen.
- Das Modul QtOpenGL enthält Klassen, die die Verwendung von OpenGL beim Rendern von 3D-Grafiken in PyQt-Anwendungen ermöglichen.
- The Das Modul QtSql enthält Klassen, die sich in Open-Source- und proprietäre SQL-Datenbanken integrieren lassen. Sie enthält bearbeitbare Datenmodelle für Datenbanktabellen, die mit GUI-Klassen verwendet werden können. Sie enthält auch eine Implementierung von SQLite.
- Das Modul QtSvg enthält Klassen zum Anzeigen des Inhalts von SVG-Dateien. Es unterstützt die statischen Funktionen von SVG 1.2 Tiny.
- Das Modul QtXml implementiert SAX- und DOM-Schnittstellen für den XML-Parser von Qt.
- Das Modul QtMultimedia implementiert Multimedia-Funktionen auf niedriger Ebene . Anwendungsentwickler würden normalerweise das Phonon-Modul verwenden.
- Das Modul QtDesigner enthält Klassen, mit denen Qt Designer mit PyQt erweitert werden kann.
- Das Modul Qt konsolidiert die darin enthaltenen Klassen alle oben beschriebenen Module in einem einzigen Modul. Dies hat den Vorteil, dass Sie sich keine Gedanken darüber machen müssen, welches zugrunde liegende Modul eine bestimmte Klasse enthält. Sie hat den Nachteil, dass das gesamte Qt-Framework geladen wird, wodurch der Speicherbedarf einer Anwendung erhöht wird. Ob Sie dieses konsolidierte Modul oder die einzelnen Komponentenmodule verwenden, hängt von Ihrem persönlichen Geschmack ab.
- Das Modul uic unterstützt den Umgang mit den von Qt Designer erstellten XML-Dateien, die das gesamte oder einen Teil einer Grafik beschreiben Benutzeroberfläche. Es enthält Klassen, die eine XML-Datei laden und direkt wiedergeben, und Klassen, die Python-Code aus einer XML-Datei zur späteren Ausführung generieren. [11]
PyQt5 enthält die folgenden Python-Module:
- QtQml Module
- QtQtuick Module
- QtCore Module
- QtGui Module
- QtPrintSupport Module
- QtWidgets Module
- QGLContext Module
- QGLFormat Module
- QGLWidget Module
- QtWebKit Modul
- QtWebKitWidgets Module
Versionen [ edit ]
PyQt-Version 4 funktioniert sowohl mit Qt 4 als auch mit Qt 5. PyQt-Version 5 unterstützt nur Qt-Version 5 [5] und fällt ab Unterstützung für Funktionen, die in Qt 5 veraltet sind. [12]
Hello World Example [ edit ]
Der folgende Code zeigt ein kleines Fenster auf dem Bildschirm.
PyQt4 [ edit ]
1 #! / usr / bin / python3
2 # Zeichencodierung: UTF-8
3 #
4 # Hier stellen wir die erforderlichen Importe bereit.
5 # Die grundlegenden GUI-Widgets befinden sich im QtGui-Modul.
6 import sys
7 aus PyQt4.QtGui import QApplication
8
# Jede PyQt4-Anwendung muss ein Anwendungsobjekt erstellen.
10 # Das Anwendungsobjekt befindet sich im QtGui-Modul.
11 app = QApplication ( sys . argv )
12
13 # Das QWidget-Widget ist die Basisklasse aller Benutzeroberflächenobjekte in PyQt4.
14
] # Wir stellen den Standardkonstruktor für QWidget bereit. Der Standardkonstruktor hat kein übergeordnetes Element.
15 # Ein Widget ohne übergeordnetes Element wird als Fenster bezeichnet.
16 Wurzel = QWidget ()
17
18 Wurzel . 320. 19659062] 240 ) # Die resize () - Methode ändert die Größe des Widgets.
19 root . setWindowTitle "Hello, World! ") # Hier setzen wir den Titel für unser Fenster.
20 root . show () # Die show () - Methode zeigt das Widget auf dem Bildschirm an.
21
22 sys . exit ( app exec exec_ exec_ 19659100] # Schließlich betreten wir die Hauptschleife der Anwendung.
PyQt5 [ edit ]
1 #! / usr / bin / python3
2 # Zeichencodierung: UTF-8
3 #
4 # Hier stellen wir die erforderlichen Importe bereit.
5 # Die grundlegenden GUI-Widgets befinden sich im QtWidgets-Modul.
6 import sys
7 aus PyQt5.QtWidgets import QApplication
# Jede PyQt5-Anwendung muss ein Anwendungsobjekt erstellen.
10 # Das Anwendungsobjekt befindet sich im QtWidgets-Modul.
11 app = QApplication ( sys . argv )
12
13 # Das QWidget-Widget ist die Basisklasse aller Benutzeroberflächenobjekte in PyQt5.
14
] # Wir stellen den Standardkonstruktor für QWidget bereit. Der Standardkonstruktor hat kein übergeordnetes Element.
15 # Ein Widget ohne übergeordnetes Element wird als Fenster bezeichnet.
16 Wurzel = QWidget ()
17
18 Wurzel . 320. 19659062] 240 ) # Die resize () - Methode ändert die Größe des Widgets.
19 root . setWindowTitle "Hello, World! ") # Hier setzen wir den Titel für unser Fenster.
20 root . show () # Die show () - Methode zeigt das Widget auf dem Bildschirm an.
21
22 sys . exit ( app exec exec_ exec_ 19659100] # Schließlich betreten wir die Hauptschleife der Anwendung.
Bemerkenswerte Anwendungen, die PyQt [ ]
- verwenden. Anki, ein Flashcard-Programm mit beabstandeter Wiederholung
- Caliber, ein E. -Buch-Verwaltungsanwendung
- Dropbox, ein Datei-Hosting-Service
- Eric Python IDE
- fman, plattformübergreifend Dateimanager
- Kodos, Python-Debugger für reguläre Ausdrücke
- Leo, ein Programmiereditor für Outliner und Alphabetisierung
- Ninja-IDE, eine erweiterbare Open-Source-Python-IDE
- OpenLP, ein Open-Source-Projektionsprogramm für Texttexte
- ] OpenShot, ein Videobearbeitungsprogramm
- Orange, ein Data Mining- und Visualisierungs-Framework
- Puddletag, ein plattformübergreifender Open-Source-ID3-Tag-Editor
- QGIS, eine freie Desktop-Anwendung für geographische Informationssysteme (GIS)
- qt-recordMyDesktop, Qt4-Frontend für recordMyDesktop
- Spyder, eine IDE von Python data science
- TortoiseHg, eine grafische Schnittstelle für das Mercurial-Quellverwaltungsprogramm (Hg)
- Siehe auch [ edit ]
PyQt ist eine der Optionen von Python für die GUI-Programmierung. Beliebte Alternativen sind PySide (die Qt-Bindung mit offizieller Unterstützung und eine liberalere Lizenz), PyGTK, wxPython, Kivy und Tkinter (die mit Python gebündelt ist).
Wikimedia Commons hat Medien im Zusammenhang mit PyQt . Referenzen [ edit ]
Weiterführende Literatur [ [1945921]
- Summerfield, Mark (28. Oktober 2007), Schnelle GUI-Programmierung mit Python und Qt (Covers PyQt4) (1. Ausg.), Prentice Hall, S. 1. 648, ISBN 978-0-13-235418-9
- Rempt, Boudewijn (2002), GUI-Programmierung mit Python: QT Edition (Covers PyQt3) OpenDocs, archiviert vom Original am 2010-04-09
Externe Links [ edit ]
Không có nhận xét nào:
Đăng nhận xét