Inhaltsverzeichnis
Python ist eine Programmiersprache zu denen die Eigenschaft, multiparadigmatisch zu sein wie ermöglicht die Programmierung mit einem objektorientierten und funktionalen Paradigma, verfügt über eine standardisierte Bibliothek.Es gibt viele Python-Tools und -Bibliotheken, um Software und Webanwendungen zu entwickeln, im Fall des Screendesigns können wir verschiedene Bibliotheken verwenden, wie z wxPython, PyQt, PySide oder PyGTK Um unsere Schnittstelle zu zeichnen und dann zu programmieren, gibt es auch Web-Frameworks wie Django. In diesem Tutorial werden wir sehen, wie man plattformübergreifende Desktop-Anwendungen erstellt mit PyQT 5.
PyQt5 ist als eine Reihe von Python-Modulen implementiert. Es ermöglicht uns, die Designs, die wir mit QT Designer erstellen, zu verknüpfen und sie dann mit Py Qt zu übersetzen, sodass sie unter Python in allen Betriebssystemen wie Linux Windows und Mac OS ausführbar sind.
Um Anwendungen zu entwickeln, müssen wir die notwendigen Programme und Abhängigkeiten installieren.Dieses Tutorial verwendet eine Version von Linux Mint als Betriebssystem, die jedoch an jedes Betriebssystem angepasst werden kann.
In anderen Tutorials verwenden wir Qt zum Programmieren in C++, Multiplatform Programming in C++ und Qt unter GNU/Linux Environment und QT Programming und SQLite-Datenbanken.
Lassen Sie uns zuerst QT Designer 5 installieren, von einem Terminalfenster laden wir es herunter und installieren es
$ wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-Abrirsource-linux-x64-5.3.0.run $ chmod + x qt-Abrirsource-linux-x64-5.3 .0.run $ sudo ./qt-Abrirsource-linux-x64-5.3.0.runAls nächstes müssen wir die Python-Entwicklungsbibliotheken installieren:
sudo apt-get install pyqt5-dev-toolsAls nächstes müssen wir eine Python-Erweiterung namens SIP installieren, die ein Codegenerator ist, der speziell zum Erstellen von Python-Code entwickelt wurde. Dadurch kann die Designdatei von Qt Designer gelesen und in Python-Code übersetzt werden. Der generierte Code kann für Python v2 und v3 kompiliert werden.
Wir laden SIP von der offiziellen Website herunter, gehen dann in den Ordner, in den wir es heruntergeladen haben, entpacken die Datei sip-4.17.tar.gz, greifen auf den Ordner zu und konfigurieren SIP und installieren mit dem folgenden Code aus dem Terminalfenster.
python configure.py make make installAls Standardversion haben wir QT5 eingestellt:
sudo apt-get install qt5-defaultSchließlich laden wir PyQt herunter und installieren es, das sind die Bibliotheken, die wir benötigen, um Python und QT Designer zu verknüpfen
Laden Sie PyQt von der offiziellen Website herunter, gehen Sie dann in den Ordner, in den wir es heruntergeladen haben, entpacken Sie die PyQt-Datei, greifen Sie auf den Ordner zu und konfigurieren Sie ihn mit dem folgenden Code aus dem Terminalfenster.
python-configure.pyWir werden eine einfache Anwendung von Qt Designer erstellen. Wir werden das Design mithilfe eines Formulars erstellen. Wir sind nur an der Datei mit der ui-Erweiterung interessiert, die die Designoberfläche darstellt. Unser Projekt heißt Dialoga.
Als nächstes müssen wir vom Terminal aus die Datei dialoga.ui in Python übersetzen, aus dem Terminalfenster verwenden wir den folgenden Befehl:
pyuic5 -o dialoga.py dialoga.ui
# - * - Kodierung: utf-8 - * - # Formularimplementierung generiert aus dem Lesen der UI-Datei 'dialoga.ui' # # Erstellt: Mon Okt 26 21:31:56 2015 # von: PyQt5 UI Code Generator 5.2.1 aus PyQt5 import QtCore, QtGui, QtWidgets Klasse Ui_DialogA (Objekt): def setupUi (self, DialogA): DialogA.setObjectName ("DialogA") DialogA.resize (400, 300) self.buttonBox = QtWidgets.QDialogButtonBox (DialogA) self.buttonBox ( DialogA) self. setGeometry (QtCore.QRect (30, 240, 341, 32)) self.buttonBox.setOrientation (QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons (QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogtonBsetOsetObutton.QDialogtonBsetOsetOButtonButton.OffQDialog ("buttonBox") self.textEdit = QtWidgets.QTextEdit (DialogA) self.textEdit.setGeometry (QtCore.QRect (20, 20, 361, 201)) self.textEdit.setObjectName ("textEdit") self.retranslateUi (DialogA ) self.buttonBox.accepted.connect (DialogA.accept) self.buttonBox.rejected.connect (DialogA.reject) QtCore.QMetaObject.connectSlotsByName (DialogA) def retranslateUi (self, DialogA): _translate = QtCore.QCoreAp plication.translate DialogA.setWindowTitle (_translate ("DialogA", "Dialog"))Dies ist alles, was wir in Qt Designer entwerfen. Jetzt müssen wir es mit einem Code verknüpfen, der es verwendet. Dazu erstellen wir eine Datei startup.py und schreiben den folgenden Code:
import sys from PyQt5.QtWidgets import QApplication, QDialog from dialoga import * app = QApplication (sys.argv) window = QDialog () ui = Ui_DialogA () ui.setupUi (window) window.show () sys.exit (app.exec_ ())Wir sehen, dass wir die Grafikanzeigebibliotheken importieren und den Dateidialog mit dem Design importieren.
Dann geben wir an, dass window ein Dialog ist, das UI-Fenster hat das Design, das in der Ui_DialogA()-Klasse definiert ist, die in der Designdatei definiert ist, und schließlich wird das Design dem Fenster durch die setupUi-Funktion zugewiesen.
Wir speichern und führen aus dem Befehlsfenster wie folgt aus:
python3 home.py
Wir führen die Konvertierung aus dem Terminalfenster mit dem folgenden Befehl durch:
pyuic5 -o mieditor.py mieditor.uiDer Designcode in Python sieht wie folgt aus:
# - * - Kodierung: utf-8 - * - # Formularimplementierung generiert aus dem Lesen der UI-Datei '/testqt/mieditor.ui' # # Erstellt: Mo 26 Okt 10:32:56 2015 # von: PyQt5 UI Code Generator 5.2. 1 # # ACHTUNG! Alle in dieser Datei vorgenommenen Änderungen gehen verloren! aus PyQt5 import QtCore, QMainWindow, QApplication, QtGui, QtWidgets Klasse Ui_MainWindow (Objekt): def setupUi (self, MainWindow): MainWindow.setObjectName ("MainWindow") MainWindow.resize (533, 317) self.centralwidget (QtGui.Q) MainWindow) self.centralwidget.setObjectName ("centralwidget") self.gridLayout = QtGui.QGridLayout (self.centralwidget) self.gridLayout.setObjectName ("gridLayout") self.textEdit = QtGui.QTextEdit (self.centraldit.) Self.textEdit (self.centraldit.) Self.textEdit (self.centraldit.) setObjectName ("textEdit") self.gridLayout.addWidget (self.textEdit, 0, 0, 1, 1) MainWindow.setCentralWidget (self.centralwidget) self.menubar = QtGui.QMenuBar (MainWindow) self.menubar.setGeometry (QtCore. QRect (0, 0, 533, 25)) self.menubar.setObjectName ("menubar") self.menu_File = QtGui.QMenu (self.menubar) self. menu_File.setObjectName ("menu_File") self.menu_Help = QtGui.QMenu (self.menubar) self.menu_Help.setObjectName ("menu_Help") MainWindow.setMenuBar (self.menubar) self.statusbar = QtGui.QStatusBar (MainWindow) self. statusbar.setObjectNam e ("statusbar") MainWindow.setStatusBar (self.statusbar) self.action_New = QtGui.QAction (MainWindow) self.action_Nuevo.setObjectName ("action_New") self.action_Open = QtGui.QAction (MainWindow) self.action_bjectName (MainWindow) self.action_bjectName (SetObjectName) "action_Abrir") self.action_Save = QtGui.QAction (MainWindow) self.action_Save.setObjectName ("action_Save") self.actionSave_As = QtGui.QAction (MainWindow) self.actionSave_As.setObjectName ("actionSave_As") self.action_Quit.QAction (MainWindow) self.action_Quit.setObjectName ("action_Quit") self.actionA_bout = QtGui.QAction (MainWindow) self.actionA_bout.setObjectName ("actionA_bout") self.action_Help = QtGui.QAction (MainWindow) self.action_Help = QtGui.QAction (MainWindow). action_Help (MainWindow) self.action_Help "action_Help") self.menu_File.addAction (self.action_New) self.menu_File.addAction (self.action_Open) self.menu_File.addAction (self.action_Save) self.menu_File.addAction (self.menu_As ) self.menu_File (self.ActionSave_As) self.menu_File self.action_Quit) self.menu_Help.addAction (self.actionA_bout) self.menu_Help.addAction (self. action_Help) self.menubar.addAction (self.menu_File.menuAction ()) self.menubar.addAction (self.menu_Help.menuAction ()) self.retranslateUi (MainWindow) QtCore.QObject.connect (self.action_Quit, QtCore.SIGNAL ( self.action_Quit, QtCore.SIGNAL ( "triggered ()"), MainWindow.close) QtCore.QMetaObject.connectSlotsByName (MainWindow) def retranslateUi (self, MainWindow): MainWindow.setWindowTitle (QtGui.QApplication.translate" ("MainWindow") MiEditor", None, QApplicationGui ", None, QApplicationGui" .UnicodeUTF8)) self.menu_File.setTitle (QtGui.QApplication.translate ("MainWindow", "& File", None, QtGui.QApplication.UnicodeUTF8)) self.menu_Help. setTitle ("QtGui.QApplication.translate", "QtGui.QApplication.translate" & Help", Keine, QtGui.QApplication.UnicodeUTF8)) self.action_Nuevo.setText (QtGui.QApplication.translate (" MainWindow "," & New " , None, QtGui.QApplication.UnicodeUTF8)) self.action_Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText (QtGui.Abrir.setText) .translate ("MainWindow", "& Open", None, QtGui. QApplication.UnicodeUTF8)) self.action_Save.setText (QtGui.QApplication.translate ("MainWindow", "& Save", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_As.setText (QtGui.QApplication.translate ("MainWindow", "Save & As", None, QtGui.QApplication.UnicodeUTF8))) self.action_Quit.setText (QtGui.QApplication (" self.translate") MainWindow "," & Exit ", None, QtGui.QApplication.UnicodeUTF8)) self.actionA_bout.setText (QtGui.QApplication.translate (" MainWindow "," To & near ", None, QtGui.QApplication. UnicodeUTFelp8)) self.action_HnicodeUTFelp8)). setText (QtGui.QApplication.translate ("MainWindow", "& Technical Support", None, QtGui.QApplication.UnicodeUTF8))Als nächstes müssen wir den Code programmieren, um dem Editor Funktionalität zu geben, jedes Menü und den Textbereich zu instanziieren. Der Code ist ziemlich umfangreich, hier entwickeln wir nur das Interface-Design und seine Konvertierung …
Die Erstellung der grafischen Benutzeroberfläche mit Qt Designer erleichtert das Entwerfen von Anwendungen und ist auch ein großartiges Lernwerkzeug, da der Code von uns abhängt.
Mit Qt Designer können Sie die Eigenschaften jeder Komponente vor der Übersetzung sehen, die Programmierung kann auch ohne die grafische Oberfläche direkt in jedem Texteditor erfolgen, wenn wir die erforderlichen Bibliotheken und deren Eigenschaften kennen.
Python kann auch Anwendungen verarbeiten, die sich mit Datenbanken wie Mysql oder Sqlite verbinden. Durch eine Verbindung und Operationen auf Datenbanken mit Python können wir unserer Anwendung auch eine visuelle Schnittstelle hinzufügen, die mit den grafischen Bibliotheken von . erstellt wurde Qt mit PyQt. Wir werden die Programmierung von grafischen Oberflächen für Benutzer mit Python in einem anderen Tutorial.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben