Les bindings Python sur Qt
Afin de créer des applications de bureau avec Qt et Python, nous devons utiliser ce qu'on appelle en anglais des "binding".
Quand on commence à s'intéresser à Qt, on est souvent perdu entre les différentes bibliothèques Python qui permettent de travailler avec ce framework.
Les deux bibliothèques les plus connues sont PySide et PyQt.
Ces deux bibliothèques ont beaucoup évolué et sont donc disponibles sous différents noms de versions.
Pour la bibliothèque PySide par exemple, vous trouverez PySide, PySide2 et PySide6.
Pour PyQt, vous trouverez PyQt, PyQt5 et PyQt6.
Les dernières versions de PyQt et PySide suivent les versions de la bibliothèque Qt. C'est la raison pour laquelle on est passé directement de PySide2 à PySide6.
Les prochaines versions de ces bibliothèques devraient donc logiquement être PyQt7 et PySide7.
PyQt est le binding le plus ancien. Il a été développé par Phil Thompson de la compagnie Riverbank.
En 2009, Nokia qui possédait à l'époque le framework Qt, souhaitait créer un binding Python avec une licence plus permissive. PyQt est en effet distribué sous une licence qui vous oblige à acheter une licence commerciale si vous souhaitez utiliser ce binding pour créer des applications à usage commercial.
Nokia n'ayant pas réussi à trouver d'accord avec Riverbank, ils ont créé leur propre binding Python sous le nom de PySide.
Pendant longtemps, PyQt avait une longueur d'avance sur PySide. La sortie de PyQt5 a précédé de 2 ans celle de PySide2.
Historiquement, vous trouverez donc plus d'applications utilisant PyQt.
Cependant, la donne a changé récemment, PySide ayant été récemment récupéré par Qt comme binding officiel. À cette occasion, le nom de la bibliothèque a changé pour devenir Qt for Python.
Rassurez-vous, il existe très (très !) peu de différences entre PyQt et PySide. Vous pouvez la plupart du temps convertir un programme entier de l'un à l'autre juste en changeant les imports en début de fichier.
La plus grosse différence entre les deux binding se situe au niveau de la licence.
Si vous souhaitez distribuer vos applications commercialement, sans donner accès au code source, vous devrez avec PyQt payer une licence à Riverbank Software. Ce n'est pas le cas avec PySide qui vous permet de distribuer commercialement une application créé avec ce binding.
!!!warning
Quel que soit le binding que vous choisissez d'utiliser, vous devrez tout de même acheter une licence de Qt si vous souhaitez distribuer vos programmes commercialement. Si vous utilisez PyQt, vous devrez ainsi payer deux licences (celle de Qt + celle de PyQt). Si vous utilisez PySide, seule la licence de Qt sera nécessaire.
!!!