【发布时间】:2016-09-27 10:56:24
【问题描述】:
我有一个 QWebEnginePage 实例,它加载了一些 url(例如https://www.google.com)
我希望这个页面显示在两个 QWebEngineViews 中,但看起来 Qt 不允许这样做。
一旦我在一个视图上调用 setPage,另一个视图就会停止渲染页面。 看起来这是所有权问题或类似的问题,但我在 Qt 文档中没有看到任何相关信息。
还有其他人遇到过这样的问题吗?
auto p = new QWebEnginePage();
p->load(QUrl("https://www.google.com"));
auto w1 = new QWebEngineView();
auto w2 = new QWebEngineView();
w1->setPage(p);
w2->setPage(p);
w1->show();
w2->show();
我希望两个视图都显示相同的页面,但只有 w2 显示它。如果您稍后调用w1->setPage(p) - 该页面将显示在 w1 上,并从 w2 上消失。
UPD。 只想发表结论。 - QWebEnginePage 的 view() 方法证明了一对一的关系。 - setPage 源代码清楚地显示“第二次它只是与第一次视图断开连接”。 - “如果当前页面是 web 视图的子页面,它将被删除。” - 根本不回答我的问题。我的页面不是网络视图的子页面,也没有被删除,只是没有像我预期的那样同时呈现。
【问题讨论】:
-
你说得对,我已经用相关的代码更新了我的答案
标签: c++ qt qtwebengine