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
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.
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.
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++
Qt4 (28 juin 2005) : cette version de la librairie est compatible avec C++98.
Qt5 (19 décembre 2012) : elle est compatible avec C++11. Les fichiers d'entêtes (les includes) sur renommés.
Qt6 (8 décembre 2020) : elle est compatible avec C++17.
Il y a plusieurs façons de prononcer son nom :
Officiellement, vous devriez le prononcer « cute », avec l'accent anglais bien sur.
Mais on entend aussi souvent les deux lettres « Q.T. », toujours prononcées en anglais.
Enfin, les français peuvent aussi parfois prononcer les deux lettres « Q.T. », mais en français.
Ok, j'avoue que c'est ma façon de faire ;-)
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.
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
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.
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).
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 :