Le Widget QWebEngineView PyQt5 Python

create a webbrowser in python pyqt5 with qwebengineview
 

1. A propos du widget QWebEngineView

QWebEngineView est un widget dans PyQt5 qui vous permet d'intégrer du contenu Web dans vos applications PyQt5. Il est basé sur Chromium, un projet de navigateur Web open source, et offre une expérience de navigation rapide et sécurisée. Les liaisons reposent sur PyQt5 et sont implémentées sous forme de trois modules distincts correspondant aux différentes bibliothèques qui composent le framework.
Dans ce tutoriel, nous allons découvrir comment utiliser le widget PyQt5 QWebEngineView, notamment la création d'un navigateur Web simple, le chargement de pages Web locales et distantes, la gestion des événements de navigation pour interagir avec la page Web.

 

2. Principales Fonctionnalités

  1. Affichage de Pages Web : QWebEngineView permet de charger et d’afficher des pages web via des URL ou du contenu HTML brut. Par exemple, il peut être utilisé pour afficher des sites web distants ou des fichiers HTML locaux.
  2. Exécution de JavaScript : Grâce au moteur Chromium sous-jacent, il prend en charge l'exécution de JavaScript. Vous pouvez également exécuter du JavaScript personnalisé et capturer les résultats via Python.
  3. Chargement Dynamique :
    • Prend en charge le chargement de contenu dynamique.
    • Gère les redirections, les cookies, et les requêtes HTTP/HTTPS.
    • Gestion des Événements : Il fournit des signaux pour réagir à divers événements, tels que le début et la fin du chargement d'une page, les erreurs de chargement ou les clics sur des liens.
  4. Personnalisation :
    • Permet la personnalisation de l'interface du navigateur via des contrôles tels que les boutons de navigation, les barres d’adresse, etc.
    • Vous pouvez modifier l'agent utilisateur (user-agent), contrôler les permissions des pages web (par exemple, accès à la caméra ou au micro), et gérer les fenêtres contextuelles (pop-ups).
  5. Sécurité :
    • Prend en charge les connexions sécurisées (HTTPS) avec des certificats SSL.
    • Possède des options pour désactiver ou restreindre JavaScript ou d'autres fonctionnalités web.
  6. Impression et PDF : Inclut des fonctionnalités pour imprimer directement des pages web ou exporter le contenu affiché au format PDF.
  7. Intégration avec d'autres Widgets Qt : QWebEngineView s'intègre facilement avec d'autres widgets de l'écosystème Qt, tels que les layouts, les barres d'outils, ou les actions de menus.
 

3. Usage Typique du widget QWebEngineView

Le Widget QWebEngineView est souvent utilisé dans les cas suivants :

  1. Navigateur Web Personnalisé : Création d’un navigateur web avec des fonctionnalités spécifiques.
  2. Affichage de Documentation : Intégration de manuels ou de fichiers d'aide au sein d'une application.
  3. Applications Hybrides : Combinaison d'une interface utilisateur native avec du contenu web dynamique.
  4. Tableaux de Bord Interactifs : Utilisation pour afficher des graphiques, des visualisations ou des données provenant de services web.
 

4. Usage Basique de QWebEngineView

QWebEngineView est doté d'un certain nombre de signaux permettant d'améliorer ses performances:
Signaux Importants

  1. loadStarted() : Émis lorsque le chargement d'une page commence.
  2. loadProgress(int progress) : Fournit la progression du chargement de la page (0 à 100).
  3. loadFinished(bool ok) : Émis lorsque le chargement est terminé (succès ou échec).
  4. urlChanged(QUrl url) : Émis lorsque l’URL affichée change.

4.1 Exemple simple d'utilisation du QWebEngineView en PyQt5

4.1 Exemple d'utilisation du QWebEngineView selon l'approche objet

 

5. Créer un navigateur web simple

Pour créer un mini navigateur web, nous aurons besoin d'un ensemble de méthodes associées à un objet d'instance de la classe QWebEngineView:

  1. QWebEngineView : Classe utilisé pour afficher une page Web.
  2. QUrl : Permet de gérer et représenter les URLs.
  3. load(QUrl) : Charge l'URL spécifiée, ici Wikipedia.
  4. urlChanged : Signal émis lorsqu'une nouvelle URL est chargée. Ce signal est connecté à la méthode url_changed, qui met à jour la barre d'adresse.
  5. webview.back : Attribut qui permet de revenir à la page précédente dans l'historique.
  6. webview.forward : Attribut qui permet de naviguer vers la page suivante dans l'historique de navigation, si une telle page existebien sûr!

créer un navigateur web avec QWebEngineView pyqt5 python




 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply