6

文档(至少在 PyQt 中)QWebView说:“QWebView 类提供了一个用于查看和编辑 Web 文档的小部件”,而QWebPage说:“QWebPage 类提供了一个对象来查看和编辑 Web 文档”。鉴于这些实际上意味着同一件事:

  • 这两个阶级进化有历史原因吗?
  • 在任何特定情况下,一个比另一个更好用吗?

(这源于我使用嵌入在 PyQt 应用程序中的 javascript 库的事实;我目前正在使用QWebView,但只有QWebPage一种用于捕获 javascript 错误的方法,因此正在考虑是否值得将我的代码转换为子类QwebPage

4

2 回答 2

7

从它说的文档中

QWebPage 拥有一个主框架,负责网页内容、设置、导航链接的历史和操作。此类可以与 QWebFrame 一起使用,以在无小部件的环境中提供类似 QWebView 的功能。

QWebView继承自QWidgetwhileQWebPage不。

因此,我的猜测是,这QWebView只是一个能够加载和显示 HTML 的小部件,同时QWebPage可以与视图一起使用或不使用视图。还QWebPage具有更多功能,例如设置或导航历史。

现在一个没有小部件的环境是例如QtCore.QCoreApplication.

例如,您似乎会QWebPage在编写用于抓取 Web 内容的应用程序时使用,而QWebView当您只想在应用程序的某处加载和显示一些 Web 内容时,您会更喜欢。QWebView作为一个小部件总是想显示一些东西。

从历史上看,它们都是在 Qt 4.4 中引入的。

悬而未决的问题是他们在内部共享了多少,以及是否有一些你不能做或不能效仿的QWebView事情你可以做QWebPage

于 2014-06-24T09:31:22.963 回答
0

QWebViewQWidget拥有 a 的 a QWebPage。如果您构建基于小部件的应用程序,QWebView请使用QWebView::setPage(). 当然,您可以将QWebPage子类的对象传递给该函数。

您可以使用 访问小部件的当前页面QWebView::page()

于 2022-01-16T19:44:29.653 回答