pyqt Zelfstudie
Aan de slag met pyqt
Zoeken…
Opmerkingen
PyQt is een Python-binding aan het populaire platformoverschrijdende Qt-toepassingsframework dat gewoonlijk wordt gebruikt om grafische toepassingen te maken. PyQt4 ondersteunt Qt4 en PyQt5 ondersteunt Qt5. Het draait op alle platforms die worden ondersteund door Qt (Windows, OS X, Linux, iOS en Android). De bindingen zijn geïmplementeerd als een set van Python-modules en klassen.
Zie de PyQt-website voor meer informatie.
Installatie van PyQt4
Voorgestelde installatiemethode
Windows : download en voer het binaire installatiebestand uit .
Linux (Debian) : voer deze opdracht uit op uw opdrachtregel:
$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer
OS X : voer deze opdracht uit op uw opdrachtregel:
$ brew install pyqt
Handmatig installeren
U kunt de broncode ook hier handmatig downloaden en vervolgens zelf installeren en configureren.
Test uw installatie
Als pyqt correct is geïnstalleerd, kunt u de opdracht pyuic4
uitvoeren. Als het correct is geïnstalleerd, ziet u de volgende fout:
$ pyuic4
Error: one input ui-file must be specified
Installatie voltooid
U hebt nu de PyQt4-bibliotheek geïnstalleerd. Twee nuttige toepassingen zijn ook geïnstalleerd naast PyQt4:
- Qt Designer: een applicatie voor 'drag & drop' ontwerp van grafische interfaces (maakt
.ui
bestanden), - pyuic4: een opdrachtregeltoepassing die
.ui
bestanden kan converteren naar Python-code.
Een basistoepassing
Het volgende voorbeeld toont een eenvoudig hoofd-GUI-venster met een labelwidget, een werkbalk en een statusbalk met PyQt4.
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 Wereld
Deze basiscode zal een "Hello world" GUI-venster starten met behulp van PyQt4:
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_())
Dit is dezelfde code die PyQt5 gebruikt.
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_())
Een eenvoudig voorbeeld van slepen en neerzetten
Maak een eenvoudige GUI-applicatie in 3 eenvoudige stappen.
1. Ontwerp
Open Qt Creator
, maak een nieuw project en maak uw ontwerp. Sla uw resultaat op als .ui
bestand (hier: mainwindow.ui
).
2. Genereer het overeenkomstige .py-bestand
U kunt nu een .py-bestand maken van uw .ui-bestand dat u in de vorige stap hebt gegenereerd. Voer het volgende in op uw opdrachtregel:
$ pyuic4 mainwindow.ui -o GUI.py
Als de bovenstaande regel met succes wordt uitgevoerd, wordt een GUI.py
bestand gemaakt.
3. Python-codes
U kunt uw eigen code (bijv. Signalen en slots) toevoegen aan het GUI.py
bestand, maar het is beter om ze in een nieuw bestand toe te voegen. Als u ooit wijzigingen in uw GUI wilt aanbrengen, wordt het GUI.py
bestand overschreven. Daarom is het in de meeste gevallen beter om een ander bestand te gebruiken om functionaliteit toe te voegen.
Laten we het nieuwe bestand 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_()
Nu kunt u main.py
en uw GUI bekijken.