pyqtAan de slag met pyqt


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.

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_())
 

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 ).

Een voorbeeld van een widget

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.

uitgang

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_())
 

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.