【问题标题】:QWebView vs QWebPageQWebView 与 QWebPage
【发布时间】:2023-03-11 00:59:01
【问题描述】:

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

  • 这两个职业的演变是否有历史原因?
  • 在任何特定情况下,其中一种是否比另一种更好用?

(这是因为我使用的是嵌入在 PyQt 应用程序中的 javascript 库;我目前使用的是QWebView,但只有QWebPagecatching javascript errors 的方法,所以正在考虑是否值得将我的代码转换为QwebPage 的子类)

【问题讨论】:

    标签: qt pyqt pyside qwebview qwebpage


    【解决方案1】:

    来自documentation 它说

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

    同样QWebView 继承自QWidgetQWebPage 没有。

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

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

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

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

    悬而未决的问题是他们在内部共享了多少,如果有什么你不能用QWebView 做或不能模仿你可以用QWebPage 做吗?

    【讨论】:

      【解决方案2】:

      QWebView 是一个拥有QWebPageQWidget。如果您构建基于小部件的应用程序,请使用QWebView 并使用QWebView::setPage() 设置您自己的页面。当然,您可以将 QWebPage 子类的对象传递给该函数。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多