2014-06-24 13 views
5

Die Dokumentation (in PyQt mindestens) für QWebView sagt: 'Die QWebView-Klasse bietet ein Widget zum Anzeigen und Bearbeiten von Webdokumenten', während QWebPage sagt: 'Die QWebPage-Klasse bietet ein Objekt zum Anzeigen und Webdokumente bearbeiten '. Vorausgesetzt, dass diese die gleiche Sache bedeuten:QWebView vs QWebPage

  • Gibt es einen historischen Grund, warum diese 2 Klassen entwickelt?
  • Ist es in einem bestimmten Fall besser, den anderen zu verwenden?

(Dies ergibt sich aus der Tatsache, das ich eine in einem PyQt Anwendung eingebettet JavaScript-Bibliothek verwenden, ich bin derzeit QWebView, aber nur QWebPage hat ein Verfahren zur catching javascript errors, so erwäge, ob es sich lohnt übersetzen mein Code QwebPage statt)

Antwort

6

Vom documentation sagt es

QWebPage hält einen Hauptrahmen für Web-Inhalte, Einstellungen, die Geschichte der navigierten Links und Aktionen zu Unterklasse. Diese Klasse kann zusammen mit QWebFrame mit verwendet werden, um Funktionen wie QWebView in einer widgetfreien Umgebung bereitzustellen.

Auch QWebView erbt von QWidget während QWebPage nicht der Fall ist.

Meine Vermutung ist daher, dass QWebView ist nur ein Widget in der Lage, HTML zu laden und anzuzeigen, während QWebPage mit einer Ansicht oder ohne eine Ansicht verwendet werden kann. Auch QWebPage hat mehr Funktionen wie Einstellungen oder Geschichte der Nagivierung.

Jetzt ist eine Umgebung ohne Widget beispielsweise QtCore.QCoreApplication.

Es scheint, dass Sie QWebPage zum Beispiel beim Schreiben einer Anwendung zum Scrappen von Web-Inhalten verwenden würden, während Sie QWebView bevorzugen, wenn Sie nur einige Webinhalte irgendwo in Ihrer Anwendung laden und anzeigen möchten. QWebView ein Widget wird immer etwas angezeigt werden soll.

Historisch wurden beide mit Qt 4.4 eingeführt.

Die offenen Fragen sind, wie viel sie intern teilen und wenn es etwas gibt, was Sie nicht tun können oder nicht mit QWebView emulieren können, dass Sie mit QWebPage tun können?