Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Developpez.com - Qt
X

Choisissez d'abord la catégorieensuite la rubrique :

Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Le module QtWebKit

Le module QtWebkit fournit un moteur de navigation Web comme des classes pour afficher et interagir avec le contenu Web.

Classes

QGraphicsWebView Permet à du contenu Web d'être ajouté à un QGraphicsView
QWebDatabase Accès aux bases de données HTML5 créées avec JavaScript
QWebElement Accès facilité aux éléments DOM d'une QWebFrame
QWebElementCollection Représente une collection d'éléments Web
QWebFrame Représente une frame dans une page Web
QWebHistory Représente l'historique d'une QWebPage
QWebHistoryInterface Interface pour implémenter un historique de liens
QWebHistoryItem Représente un item dans l'historique d'une QWebPage
QWebHitTestResult Informations sur le contenu de la page Web après un hit test
QWebInspector Permet le placement et le contrôle d'un inspecteur de QWebPage. Il permet d'afficher une hiérarchie de la page actuelle, ses statistiques de chargement et l'état courant de ces éléments individuels. Il est très utilisé par les développeurs Web
QWebPage Objet pour voir et éditer des documents Web
QWebPluginFactory Utilisé pour embarquer des types de données dans des pages Web
QWebSecurityOrigin Définit une frontière de sécurité pour les sites Web
QWebSettings Objet pour stocker les paramètres utilisés par QWebPage et QWebFrame
QWebView Widget qui est utilisé pour voir et éditer des documents Web

QtWebKit fournit un moteur de navigateur Web qui rend facile l'intégration de contenu du World Wide Web dans des applications Qt, contenu qui peut être enrichi avec des contrôles natifs.

QtWebKit fournit des fonctionnalités pour le rendu de documents HTML (HyperText Markup Language), XHTML (eXtended HyperText Markup Language) et SVG (Scalable Vector Graphics), stylisés à l'aide de CSS (Cascading Style Sheets) et scriptés avec JavaScript.

Un pont entre l'environnement d'exécution JavaScript et le modèle objet de Qt rend possible le scriptage de QObject personnalisés. Pour plus de détails, voir le pont QtWebKit. L'intégration avec le module de réseau de Qt permet aux pages un chargement transparent depuis les serveurs Web, le système de fichiers local et même le système de ressources de Qt.

En plus de fournir des fonctionnalités de rendu pur, les documents HTML peuvent être rendus complètement éditables par l'utilisateur grâce à l'utilisation de l'attribut contenteditable sur des éléments HTML.

QtWebKit est basé sur le moteur open-source WebKit. Pour plus d'informations sur WebKit, visitez le site Web du projet.

L'inclusion dans vos projets

Pour inclure les définitions des classes du module, utilisez la directive suivante :

#include <QtWebkit>

Pour lier une application à ce module, ajoutez cette ligne à votre fichier qmake .pro :

 QT += webkit

Notes

Note : la génération du module QtWebKit avec des symboles de débogage est problématique sur de nombreuses plateformes, à cause de la taille du moteur WebKit. Nous recommandons la génération du module uniquement en mode release pour les plateformes embarquées. Actuellement, QtWebKit sera toujours compilé sans symbole de débogage lors de l'utilisation de gcc. Si vous avez besoin de changer cela, regardez les dernières lignes de src/3rdparty/webkit/WebCore/WebCore.pro.

Note : les icônes de sites Web, aussi connues sous le nom de « FavIcons », sont pour le moment non supportées sous Windows. Nous prévoyons d'aborder le problème dans une sortie future.

Note : le WebKit a des besoins minimums qui doivent être comblés sous les systèmes Linux embarqués. Voir le document Les nécessités de Qt pour Linux embarqués pour plus d'informations.

Architecture

La méthode la plus simple pour afficher un contenu est de passer par le biais de la classe QWebView. En tant que widget, elle peut être embarquée à l'intérieur de vos formulaires ou dans une vue graphique et elle fournit des fonctions de commodité pour les téléchargements et les affichages de sites Web.

QWebView *view = new QWebView(parent);
     view->load(QUrl("http://qt.nokia.com/"));
     view->show();

QWebView est utilisée pour voir les pages Web. Une instance de QWebView possède une QWebPage. QWebPage fournit un accès à la structure du document dans la page, décrivant des caractéristiques telles que des frames, l'historique de navigation, et les piles d'annulation/rétablissement pour les contenus éditables.

Les documents HTML peuvent être nichés en utilisant des frames dans des ensembles de frames. Une frame individuelle en HTML est représentée en utilisant la classe QWebFrame. Cette classe inclut un pont vers l'objet de fenêtre JavaScript et peut être peinte en utilisant un QPainter. Chaque QWebPage détient un objet de QWebFrame en tant que frame principale et celle-ci peut contenir plusieurs frames filles.

Il est possible d'accéder aux éléments individuels d'un document HTML par le biais d'interfaces JavaScript DOM depuis l'intérieur d'une page Web. L'équivalent de cette API dans QtWebKit est représenté par QWebElement. Les objets de QWebElement sont obtenus en utilisant les fonctions findAllElements() et findFirstElement() de QWebFrame avec un sélectionneur de requêtes CSS.

Les caractéristiques communes des navigateurs Web, les paramètres par défaut et les autres propriétés peuvent être configurés par le biais de la classe QWebSettings. Il est possible de fournir des valeurs par défaut pour toutes les instances de QWebPage à travers les paramètres par défaut. Les attributs individuels peuvent être outrepassés par l'objet de réglage, spécifique à la page.

Support du plug-in Netscape

Note : le support du plug-in Netscape est uniquement disponible sous les plateformes bureautiques.

Puisque le WebKit supporte l'API du plug-in Netscape, les applications Qt peuvent afficher des pages Web qui embarquent des plug-ins communs aux plateformes pour lesquelles ces plug-ins sont disponibles. Pour activer le support d'un plug-in, l'utilisateur doit avoir les fichiers binaires appropriés installés et l'attribut QWebSettings::PluginsEnabled autorisé pour l'application.

Les emplacements suivants sont consultés pour trouver les plug-ins :

  • .mozilla/plugins
    dans le répertoire home de l'utilisateur ;
  • .netscape/plugins dans le répertoire home de l'utilisateur ;
  • emplacements système, tels que :
    • /usr/lib/browser/plugins,
    • /usr/local/lib/mozilla/plugins,
    • /usr/lib/firefox/plugins,
    • /usr/lib64/browser-plugins,
    • /usr/lib/browser-plugins,
    • /usr/lib/mozilla/plugins,
    • /usr/local/netscape/plugins,
    • /opt/mozilla/plugins,
    • /opt/mozilla/lib/plugins,
    • /opt/netscape/plugins,
    • /opt/netscape/communicator/plugins,
    • /usr/lib/netscape/plugins,
    • /usr/lib/netscape/plugins-libc5,
    • /usr/lib/netscape/plugins-libc6,
    • /usr/lib64/netscape/plugins,
    • /usr/lib64/mozilla/plugins ;
  • emplacements spécifiés par les variables d'environnement : $MOZILLA_HOME/plugins, $MOZ_PLUGIN_PATH, $QTWEBKIT_PLUGIN_PATH.
Windows
  • le répertoire des plug-ins de l'utilisateur, Application Data\Mozilla\plugins ;
  • les emplacements système standards des plug-ins pour Quicktime, Flash, etc.
Mac OS X
  • Library/Internet Plug-Ins dans le répertoire home de l'utilisateur ;
  • le répertoire système /Library/Internet Plug-Ins.

Informations de licence

Ceci est un snapshot du port Qt de WebKit. Les informations exactes de version peuvent être trouvées dans le fichier src/3rdparty/webkit/VERSION fourni avec Qt.

Les utilisateurs des éditions commerciales de Qt qui souhaitent distribuer des applications qui utilisent le module QtWebkit doivent prendre connaissance de leurs obligations sous la GNU Library General Public License (LGPL).

Les développeurs utilisant l'édition Open Source de Qt peuvent choisir de redistribuer le module sous la version appropriée de la GNU LGPL.

WebKit is licensed under the GNU Library General Public License. Individual contributor names and copyright dates can be found inline in the code.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License or (at your option) any later version.

This library is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Remerciements

Merci à Thibaut Cuvelier et Louis du Verdier pour la traduction ainsi qu'à Jonathan Courtois et Maxime Gault pour leur relecture !

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2017 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur, une redirection cassée ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -