PyQt : Comment fonctionne le wrapper qui lie Python à Gui Qt ?

-
4
 m de lecture
-

PyQt permet de connecter Python avec le logiciel de création d'interface graphique utilisateur Qt. Découvrez tout ce que vous devez savoir sur cet encapsuleur, son fonctionnement, ses alternatives et comment suivre une formation pour apprendre à l'utiliser !

Afin de créer une interface graphique utilisateur pour leurs applications, de nombreux développeurs utilisent le logiciel multiplateforme Qt compatible avec Linux, Windows, macOS ou encore Android.

Cet outil permet de porter une application sur de multiples plateformes sans avoir à modifier la base de code sous-jacente, tout en préservant les performances d’une application native.

Pour utiliser Qt pour des applications développées en Python, il est nécessaire de connecter le logiciel au langage de programmation. Tel est le rôle de PyQt.

Qu'est-ce que PyQt ?

Développé par l’entreprise britannique Riverbank Computing en 1998, PyQt un module d’interface graphique utilisateur (GUI). Il permet de connecter le framework multiplateforme C++ Qt avec le langage Python.

Bien plus qu’une simple boîte à outils GUI, Qt regroupe aussi des abstractions de socket réseau ou de threads. On retrouve aussi la prise en charge de Unicode, SQL, SVG, OpenGL, XML, un système service service et de nombreux widgets. Au total PyQt implémente environ 440 classes et plus de 6000 fonctions et méthodes.

Le fonctionnement d’une classe Qt repose sur un principe lié à un mécanisme responsable d’offrir une communication entre les éléments afin de concevoir des composants logiciels réutilisables plus facilement.

Qt s’accompagne de l’outil Qt Designer, faisant office d’interface utilisateur graphique. Le module PyQt peut concevoir du code Python à partir de Qt Designer tout en ajoutant de nouveaux contrôles GUI quand Qt Designer et le langage de programmation Python sont tous deux utilisés.

À l’instar de Qt, PyQt est un logiciel libre sous diverses licences dont GNU General Public Licence (GPL). Il est compatible avec Microsoft Windows, UNIX, Linux et macOS.

Les classes PyQt

Les classes PyQt sont regroupées en différents modules. D’abord, QtCore regroupe les fonctionnalités de base non liées au GUI utilisées pour les éléments comme le temps, les fichiers, les directoires, les différents types de données, les threads ou les processus.

Le QtGui regroupe les composants graphiques et les classes liées, dont les boutons, fenêtres, barres de statut, bitmaps, couleurs ou polices.

Le module QtNetwork est pensé pour la programmation de réseau, et simplifie le codage de serveurs ou clients TCP/IP et UDP. De son côté, le QtXml sert à travailler avec les fichiers XML et permet l’implémentation des APIs SAX et DOM.

Le QtSvg regroupe les classes permettant de révéler les contenus des fichiers SVG. Pour rappel, il s’agit d’un langage servant à décrire les graphiques en deux dimensions ou les applications graphiques en XML.

Pour le rendu de graphiques 2D ou 3D via la bibliothèque, on utilise QtOpenGL. Enfin, le QtSQL offre la capacité de travailler avec des bases de données.

Qu'est-ce que PyQt QLineEdit ?

La classe QLineEdit est une boîte de texte permettant d’entrer une ligne de code unique. Elle permet aux utilisateurs d’entrer et d’éditer des lignes uniques de texte brut.

Par ailleurs, de nouvelles fonctionnalités d’édition utiles sont proposées. Il est notamment possible d’annuler et de refaire, de copier et de coller, ou de glisser et déposer.

En changeant le echoMode() de la boîte d’entrée de texte, il est aussi possible de la configurer comme champ d’écriture seule pour l’entrée de mots de passe ou autres éléments. La taille du texte peut être limitée à l’aide du paramètre maxLength().

Qu'est-ce que QT Designer ?

Le QT Designer est un constructeur de GUI directement intégré à PyQT. Il simplifie la conception et la création d’interface graphique utilisateur.

On peut concevoir une GUI avec QT Designer, puis programmer sa logique avec PyQT. Ceci permet d’accélérer le développement, et c’est un avantage par rapport aux alternatives telles que Tkinter.

Quelles applications utilisent PyQt ?

PyQt est très utilisé pour la création de larges programmes basés sur une interface graphique. Il permet aux développeurs de créer librement des GUI, tout en proposant un large panel de designs pré-conçus.

De nombreuses applications connues utilisent PyQT, dont le service d’hébergement de fichiers Dropbox. On peut également citer la plateforme de gestion d’ebook Calibre, ou le programme de montage vidéo OpenShot.

C’est aussi le cas des IDE Eric Python, Spyder et Ninja-IDE, et des outils de développement Kodos, Leo, Puddletag, TortoiseHg ou GNS3.

Les alternatives à PyQt

Il existe plusieurs alternatives à PyQt. En août 2009, Nokia détenait le développeur Qt Software et n’a pas trouvé de terrain d’entente avec Riverbank Computing pour proposer PyQt sous la licence LGPL (Lesser General Public Licence). Par conséquent, la firme finlandaise a lancé son propre module PySide offrant des fonctionnalités similaires.

En outre, Qt n’est pas le seul framework de création d’interface graphique utilisateur. L’une de ses principales alternatives est GTK, et son encapsuleur Python est PyGTK. De même, wxPython fait office de wrapper Python pour la collection de widgets wx.

Par défaut, le GUI standard de Python est Tkinter qui permet de connecter Python à la boîte à outils GUI Tk. Ainsi, Tkinter est inclus avec les installations standard de Linux, Windows et macOS.

Conclusion : PyQt, un outil idéal pour créer des GUI en Python

PyQt est l’un des principaux wrappers pour lier Python et Qt, au même titre que PySide créé par Nokia. Il permet d’utiliser toutes les classes et fonctions de Qt par le biais du langage de programmation.

Afin d’apprendre à utiliser PyQt et Python, vous pouvez choisir DataScientest. Toutes nos formations aux métiers de la Data Science comportent un module dédié à Python et ses bibliothèques de science de données.

Nos différents programmes permettent d’acquérir l’expertise requise pour accéder aux postes de Data Analyst, Data Engineer, Data Scientist, Machine Learning Engineer ou Data Product Manager.

Vous pouvez compléter tous ces cursus à distance via le web, et notre organisme reconnu par l’Etat est éligible au Compte Personnel de Formation pour le financement. Découvrez dès maintenant DataScientest !

Vous savez tout sur PyQt. Pour plus d’informations sur le même sujet, découvrez notre dossier complet sur Python.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?