Jusqu'à -30%, seulement jusqu'au 30/06 :
livres en ligne, vidéos & formations. Cliquez ici
Jusqu'au 30/06 : En cliquant ici, bénéficiez jusqu'à
30% de réduction sur votre panier. Je découvre !
  1. Livres & vidéos
  2. Framework PyQt
  3. Usages étendus en PyQt
Extrait - Framework PyQt Développez vos interfaces graphiques en Python avec PyQt6
Extraits du livre
Framework PyQt Développez vos interfaces graphiques en Python avec PyQt6 Revenir à la page d'achat du livre

Usages étendus en PyQt

Introduction

Au fil des chapitres précédents, nous avons exploré les fondamentaux du développement d’applications avec PyQt. Ce framework effectivement très polyvalent, couvre une vaste gamme de fonctionnalités qui rendent impossible une exploration exhaustive de tous ses usages. Cependant, pour conclure cet ouvrage, il nous paraît pertinent de consacrer un dernier chapitre à des aspects moins centraux, mais qui illustrent l’éclectisme et la puissance de PyQt, tout en offrant des outils susceptibles de faciliter certains développements.

Nous nous intéresserons tout d’abord à la représentation graphique des données à l’aide du module QtCharts, qui permet de créer des diagrammes et graphiques interactifs de manière intuitive. Ensuite, nous aborderons la navigation web grâce à QtWebEngine, qui offre la possibilité d’intégrer un moteur de rendu web au sein des applications PyQt. Enfin, nous explorerons des fonctionnalités plus avancées et parfois méconnues du framework, notamment l’animation et la modélisation tridimensionnelle (3D), en nous appuyant sur Qt3D.

Ces fonctionnalités ne constituent qu’un aperçu de la richesse de PyQt, qui a atteint une maturité impressionnante et continue d’évoluer. Ce chapitre vise ainsi à élargir...

Diagrammes de données en PyQt

1. Introduction

PyQt6 permet de représenter visuellement la plupart des types de diagrammes couramment utilisés en analyse de données. Grâce à QtCharts, on peut facilement afficher différents types de visualisations, notamment :

  • fonction point à point ;

  • diagramme à barres ;

  • diagramme circulaire (type « camembert ») ;

  • chronogramme (graphique en fonction du temps).

L’affichage de ces diagrammes repose sur le module PyQtChart, qui n’est pas inclus par défaut dans PyQt6. Il peut donc être nécessaire de l’installer explicitement via pip :

pip install PyQt6-Charts 

Une liste complète des types de graphiques disponibles, accompagnée d’exemples d’utilisation, est accessible ici : https://doc.qt.io/qt-6/qtcharts-examples.html

Dans cette section, au lieu d’afficher des données statiques, nous allons manipuler un flux de données en temps réel. Plus précisément, nous allons représenter l’utilisation du processeur (CPU) de l’ordinateur sous forme de chronogramme. Ce graphique mettra en évidence l’évolution du pourcentage d’utilisation du CPU en temps réel, permettant ainsi une visualisation dynamique des performances système.

L’utilisation du processeur (CPU) représente la charge de travail qu’un processeur exécute à un instant donné. Elle est exprimée en pourcentage de sa capacité totale et dépend du nombre de tâches en cours, de leur complexité et de la répartition des ressources entre les cœurs. Une utilisation élevée du CPU peut indiquer un traitement intensif, comme le rendu graphique, les calculs scientifiques ou l’exécution de multiples processus simultanés. À l’inverse, une faible utilisation signifie que le système est peu sollicité.

2. Exemple de diagramme en PyQt : le pourcentage CPU

Le code utilise PyQt6 et PyQt6.QtCharts pour afficher un graphique en temps réel représentant...

Web browsing en PyQt

1. Introduction

L’intégration de la navigation web dans une application peut s’avérer précieuse, que ce soit pour afficher une documentation locale embarquée ou accéder à des ressources distantes sans quitter l’interface du logiciel. Grâce à PyQt, il est possible d’incorporer un navigateur web directement dans une application, offrant ainsi une expérience utilisateur fluide et interactive.

Pour ce faire, nous utiliserons le module PyQtWebEngine, qui fournit une implémentation complète du moteur de rendu basé sur Chromium. Ce module n’est pas inclus par défaut avec PyQt6 et doit être installé séparément avec la commande suivante :

pip install PyQt6-WebEngine 

Chromium est un projet open source développé par Google qui sert de base à plusieurs navigateurs web, dont Google Chrome, Microsoft Edge et Brave. Il fournit un moteur de rendu puissant et performant, Blink, ainsi qu’un moteur JavaScript, V8, permettant d’exécuter des pages web avec rapidité et efficacité. Conçu pour être modulaire et extensible, Chromium est utilisé dans diverses applications nécessitant un affichage web intégré, comme PyQtWebEngine, qui repose sur ce moteur pour afficher des pages web au sein d’interfaces graphiques PyQt6.

Une fois installé, nous pourrons exploiter la classe QWebEngineView, qui prend en charge le protocole HTTP et permet d’afficher des pages web dans une interface PyQt6. Cela ouvre la voie à de nombreuses possibilités, comme la création d’un navigateur personnalisé ou l’intégration d’un affichage web interactif au sein d’une application métier.

Dans cette section, nous allons voir comment utiliser QWebEngineView pour développer...

Modélisation 3D en PyQt

1. Introduction

Le framework Qt, et par extension PyQt, ne se limite pas à la conception d’interfaces graphiques classiques. Il s’agit d’un véritable écosystème logiciel qui a su s’imposer dans des domaines variés, allant du développement d’applications bureautiques aux logiciels embarqués, en passant par les outils de conception industrielle et scientifique.

L’une de ses forces réside dans son intégration native avec OpenGL, qui permet d’exploiter pleinement les capacités graphiques des cartes modernes pour la modélisation et l’animation 3D. Cette section explore les différentes possibilités offertes par PyQt pour la manipulation de graphiques 3D.

OpenGL (Open Graphics Library) est une interface de programmation (API) dédiée au rendu graphique en 2D et 3D. Développée initialement par Silicon Graphics, elle est aujourd’hui un standard industriel largement utilisé pour la création d’applications graphiques, allant des jeux vidéo aux logiciels de modélisation scientifique et d’ingénierie. OpenGL permet une interaction directe avec le matériel graphique, exploitant l’accélération matérielle des GPU pour un rendu rapide et performant. Son architecture flexible et son indépendance vis-à-vis des plateformes en font une solution privilégiée pour le développement d’applications graphiques multiplateformes.

2. Modélisation 3D en PyQt

Ce programme utilise et OpenGL pour afficher un cube en 3D avec une animation fluide. L’affichage est réalisé dans une fenêtre Qt grâce à QOpenGLWidget, qui fournit un contexte OpenGL intégré à l’interface graphique.

La classe OpenGLWidget hérite de QOpenGLWidget et initialise la scène 3D. Dans la méthode initializeGL(), OpenGL est configuré pour activer la gestion de la profondeur et définir une couleur de fond noire :

def initializeGL(self):  
   gl.glEnable(gl.GL_DEPTH_TEST)  
   gl.glClearColor(0.0, 0.0, 0.0, 1.0)  # Fond noir 

Une scène 3D est une représentation numérique d’un espace tridimensionnel où sont disposés...