Démarrer avec pyqt

Une application de base

L’exemple suivant montre une fenêtre graphique principale de base avec un widget d’étiquette, une barre d’outils et une barre d’état utilisant PyQt4.

[![][1]][1]

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

[1] : http://i.stack.imgur.com/eFdBI.png

Bonjour le monde

Ce code de base lancera une fenêtre graphique “Hello world” en utilisant 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_())

C’est le même code utilisant PyQt5.

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

Un exemple simple de glisser-déposer

Créez une application graphique simple en 3 étapes faciles.

1. Concevoir

Ouvrez Qt Creator, créez un nouveau projet et faites votre design. Enregistrez votre résultat dans le fichier .ui (ici : mainwindow.ui).

[![Un exemple de widget][1]][1]

2. Générer le fichier .py correspondant

Vous pouvez maintenant créer un fichier .py à partir de votre fichier .ui que vous avez généré à l’étape précédente. Entrez ce qui suit dans votre ligne de commande :

$ pyuic4 mainwindow.ui -o GUI.py

Si la ligne ci-dessus est exécutée avec succès, un fichier GUI.py est créé.

3. Codes Python

Vous pouvez ajouter votre propre code (par exemple des signaux et des slots) dans le fichier GUI.py mais il est préférable de les ajouter dans un nouveau fichier. Si jamais vous souhaitez apporter des modifications à votre interface graphique, le fichier GUI.py sera écrasé. C’est pourquoi il est préférable d’utiliser un autre fichier pour ajouter des fonctionnalités dans la plupart des cas.

Appelons le nouveau fichier 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_()

Vous pouvez maintenant exécuter main.py et voir votre interface graphique.

[![Sortie][2]][2]

[1] : http://i.stack.imgur.com/NrGot.png [2] : http://i.stack.imgur.com/ju0fm.png

Installation de PyQt4

Méthode d’installation suggérée

Windows : Téléchargez et exécutez le [fichier d’installation binaire][1].

Linux(Debian) : exécutez cette commande dans votre ligne de commande :

$ apt-get install python-qt4 pyqt4-dev-tools qt4-designer

OS X : exécutez cette commande dans votre ligne de commande :

$ brew install pyqt

Installer manuellement

Vous pouvez également télécharger le code source manuellement depuis [ici][1], puis l’installer et le configurer vous-même.

Testez votre installation

Si pyqt est installé correctement, vous pourrez exécuter la commande pyuic4. S’il est correctement installé, vous verrez l’erreur suivante :

$ pyuic4 
Error: one input ui-file must be specified

Installation complète

Vous avez maintenant installé la bibliothèque PyQt4. Deux applications utiles ont également été installées parallèlement à PyQt4 :

  • Qt Designer : Une application de conception ‘drag & drop’ d’interfaces graphiques (crée des fichiers ‘.ui’),
  • pyuic4 : une application en ligne de commande qui peut convertir les fichiers “.ui” en code Python.

[1] : https://riverbankcomputing.com/software/pyqt/download