Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Quelles sont les différences entre PySide, PyQt et Qt ?

Installation de PySide6


Accès rapide :
Présentation de Qt
Qu'est-ce que Qt ?
Les différentes versions de Qt
Comment prononce-t-on le nom de la librairie ?
Qu'est-ce qu'un binding Qt ?
Les binding Qt pour Python
Le binding PyQt
Le binding PySide

Présentation de Qt

Qu'est-ce que Qt ?

Qt est une librairie permettant la mise en oeuvre d'interfaces graphiques. Elle a initialement été proposée pour le langage C++, mais il est maintenant possible de l'utiliser dans d'autres langages de programmations et notamment Python.

quand on parle d'interfaces graphiques, on utilise souvent l'acronyme IHM, signifiant Interface Homme-Machine (ou, en anglais HMI : Human-Machine Interface).

Contrairement à d'autres librairies de mise en oeuvre d'interfaces graphiques, et notamment Tk/Tkinter, Qt est très riche et propose des centaines de classes prêtes à l'emploi. A ma connaissance, c'est la librairie la plus riche, tous langages de programmation confondus. En conséquence, avec Qt vos IHM pourrons être très soignées et ergonomiques, si vous vous en donnez les moyens.

Les différentes versions de Qt

Il existe plusieurs versions majeures de la librairie Qt. La première version date de 1995, mais je retiendrais surtout les trois dernières versions majeures, en sachant qu'elle s'accompagne de légères modifications dans son API. Ces modifications sont surtout induites par un alignement sur les nouvelles possibilités du langage C++

Comment prononce-t-on le nom de la librairie ?

Il y a plusieurs façons de prononcer son nom :

Qu'est-ce qu'un binding Qt ?

De nombreux développeurs ont rapidement vu l'intérêt de pouvoir utiliser Qt avec d'autres langages de programmation que C++. Pour y arriver, il faut donc développer des couches intermédiaires entre Qt et le langage de programmation considéré : on appelle ces couches logicielles des « bindings ». Il existe aujourd'hui de très nombreux bindings Qt pour divers langages. En voici quelques-uns.

Langage de programmation ciblé Nom du binding Site web
C# QtSharp https://gitlab.com/ddobrev/QtSharp
Go Qt binding for Go https://github.com/therecipe/qt
Java QtJambi https://github.com/OmixVisualization/qtjambi
Perl PerlQt http://perlqt.sourceforge.net/
Rust Rust-Qt https://github.com/rust-qt

Vous retrouverez une liste plus riche de bindings Qt sur la page web suivante : https://wiki.qt.io/Language_Bindings.

Les binding Qt pour Python

Dans le cas particulier de Python, il existe deux bindings couramment utilisés : PyQt et PySide. Voici une présentation rapide de ces deux bindings

Le binding PyQt

Historiquement parlant, PyQt a été le premier binding Qt proposé pour Python. Il est codé par la société Riverbank Computing. C'est un projet « Open Source » et il est distribué sous deux licences : une commerciale et une GNU GPL. Vous pouvez télécharger PyQt directement à partir de PyPI (Python Package Index).

Il existe plusieurs versions de PyQt : elles sont, bien entendu, en lien avec les versions de Qt.

Version de PyQt Version de Qt associée Page PyPI Commande d'installation
PyQt4 Qt 4 https://pypi.org/project/PyQt4 pip install PyQt4
PyQt5 Qt 5 https://pypi.org/project/PyQt5 pip install PyQt5
PyQt6 Qt 6 https://pypi.org/project/PyQt6 pip install PyQt6

Pour de plus amples informations sur ce binding, vous pouvez consulter la page suivante : https://riverbankcomputing.com/software/pyqt/intro.

Le binding PySide

Quelque temps après la sortie de PyQt, un autre binding « Open Source » est né : PySide. Initialement développé par une équipe autonome, il a ensuite été intégré au projet Qt. Il est aujourd'hui le binding officiel Qt pour Python. Vous pouvez aussi télécharger PySide directement à partir de PyPI (Python Package Index).

Comme pour PyQt, il existe plusieurs versions de PySide : bien qu'en lien avec les versions de Qt, le versionning de PySide est un peu plus rock'n roll.

Version de PySide Version de Qt associée Page PyPI Commande d'installation
PySide Qt 4 https://pypi.org/project/PySide pip install PySide
PySide2 Qt 5 https://pypi.org/project/PySide2 pip install PySide2
PySide6 Qt 6 https://pypi.org/project/PySide6 pip install PySide6

Pour de plus amples informations sur ce binding, vous pouvez consultez la page suivante : Qt for Python - https://doc.qt.io/qtforpython/. On est bien localisé sur le site officiel Qt.

Cette introduction étant terminée, nous pouvons maintenant passer à l'installation de PySide6 (le binding que je retiens pour la suite de ce tuto).



Installation de PySide6