pyqt Tutorial
Erste Schritte mit pyqt
Suche…
Bemerkungen
PyQt ist eine Python-Bindung an das beliebte plattformübergreifende Qt-Anwendungsframework, das üblicherweise zur Erstellung grafischer Anwendungen verwendet wird. PyQt4 unterstützt Qt4 und PyQt5 unterstützt Qt5. Es läuft auf allen Plattformen, die von Qt unterstützt werden (Windows, OS X, Linux, iOS und Android). Die Bindungen werden als eine Reihe von Python-Modulen und -Klassen implementiert.
Weitere Informationen finden Sie auf der PyQt-Website .
Installation von PyQt4
Vorgeschlagene Installationsmethode
Windows : Laden Sie die binäre Setup-Datei herunter und führen Sie sie aus.
Linux (Debian) : Führen Sie diesen Befehl in Ihrer Befehlszeile aus:
$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
OS X : Führen Sie diesen Befehl in Ihrer Befehlszeile aus:
$ brew install pyqt
Manuell installieren
Sie können auch den Quellcode manuell herunterladen hier und dann installieren und diese selbst konfigurieren.
Testen Sie Ihre Installation
Wenn pyqt korrekt installiert ist, können Sie den Befehl pyuic4
. Wenn es richtig installiert ist, wird der folgende Fehler angezeigt:
$ pyuic4
Error: one input ui-file must be specified
Die Installierung ist abgeschlossen
Sie haben jetzt die PyQt4-Bibliothek installiert. Neben PyQt4 wurden auch zwei nützliche Anwendungen installiert:
- Qt Designer: Eine Anwendung zum "Drag & Drop" -Design von grafischen Oberflächen (erstellt
.ui
Dateien), - pyuic4: Eine Befehlszeilenanwendung, die
.ui
Dateien in Python-Code konvertieren kann.
Eine grundlegende Anwendung
Das folgende Beispiel zeigt ein grundlegendes GUI-Hauptfenster mit einem Beschriftungs-Widget, einer Symbolleiste und einer Statusleiste, die PyQt4 verwendet.
import sys
from PyQt4 import QtGui
class App(QtGui.QApplication):
def __init__(self, sys_argv):
super(App, self).__init__(sys_argv)
self.build_ui()
def build_ui(self):
# build a main GUI window
self.main_window = QtGui.QMainWindow()
self.main_window.setWindowTitle('App')
self.main_window.show()
# add a label to the main window
label = QtGui.QLabel('Label')
self.main_window.setCentralWidget(label)
# add a toolbar with an action button to the main window
action = QtGui.QAction('Toolbar action', self)
toolbar = QtGui.QToolBar()
toolbar.addAction(action)
self.main_window.addToolBar(toolbar)
# add a status bar to the main window
status_bar = QtGui.QStatusBar()
status_bar.showMessage('Status bar')
self.main_window.setStatusBar(status_bar)
if __name__ == '__main__':
app = App(sys.argv)
sys.exit(app.exec_())
Hallo Welt
Mit diesem Basiscode wird ein GUI-Fenster "Hallo Welt" mit PyQt4 gestartet:
import sys
from PyQt4 import QtGui
# create instance of QApplication
app = QtGui.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtGui.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Dies ist derselbe Code, der PyQt5 verwendet.
import sys
from PyQt5 import QtWidgets
# create instance of QApplication
app = QtWidgets.QApplication(sys.argv)
# create QLabel, without parent it will be shown as window
label = QtWidgets.QLabel('Hello world!')
label.show()
# start the execution loop of the application
sys.exit(app.exec_())
Ein einfaches Drag & Drop-Beispiel
Erstellen Sie in 3 einfachen Schritten eine einfache GUI-Anwendung.
1. Design
Öffnen Sie Qt Creator
, erstellen Sie ein neues Projekt und erstellen Sie Ihr Design. Speichern Sie Ihr Ergebnis als .ui
Datei (hier: mainwindow.ui
).
2. Erzeugen Sie die entsprechende .py-Datei
Jetzt können Sie eine .py-Datei aus Ihrer .ui-Datei erstellen, die Sie im vorherigen Schritt erstellt haben. Geben Sie Folgendes in Ihre Befehlszeile ein:
$ pyuic4 mainwindow.ui -o GUI.py
Wenn die obige Zeile erfolgreich ausgeführt wird, wird eine GUI.py
Datei erstellt.
3. Python-Codes
Sie können Ihren eigenen Code (z. B. Signale und Slots) in die Datei GUI.py
, es ist jedoch besser, sie in einer neuen Datei hinzuzufügen. Wenn Sie Änderungen an Ihrer GUI GUI.py
möchten, wird die GUI.py
Datei überschrieben. Daher ist es in den meisten Fällen besser, eine andere Datei zum Hinzufügen von Funktionen zu verwenden.
Nennen wir die neue Datei main.py
from PyQt4 import QtGui
import sys
import GUI # Your generated .py file
class MyApp(QtGui.QMainWindow, GUI.Ui_MainWindow):
def __init__(self, parent=None):
super(ExampleApp, self).__init__(parent)
self.setupUi(self)
# Connect a button to a function
self.btn_run.clicked.connect(self.run)
def run(self):
# Write here what happens after the button press
print("run")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
form = ExampleApp()
form.show()
app.exec_()
Jetzt können Sie main.py
und Ihre GUI sehen.