【问题标题】:How can I embed a custom QWidget in a QWebEngineView or page?如何在 QWebEngineView 或页面中嵌入自定义 QWidget?
【发布时间】:2016-03-16 12:40:59
【问题描述】:

我知道可以使用已弃用的类 QtWebkit 来执行此操作,如 here 所示。

我想知道新的QtWebEngine 框架是否可以完成类似的工作?我找不到在网页(QWebEnginePage)中创建插件的方法。这与 Chromium 中的插件技术有关吗?

我目前正在探索使用 Qt 5.5 实现这一目标的可能性。

【问题讨论】:

  • 我认为这是不可能的(与 Nicholas Smith 的推理相同),但也许您可以考虑以下替代方案之一:(a) QML 非常接近 HTML,也许改用 QML? (b) 您可以将 Qt 对象暴露给网页并通过 Javascript 与之交互。然后你必须在 JS 中绘制小​​部件。
  • 也谢谢你,乔治!您给出的第二个选项很有趣。但我认为在这种情况下我没有运气使用我们开发的许多现有 QWidget。我想使用浏览器为远程用户提供现有的 GUI。 HTML5 当然是一个不错的选择,但它需要在客户端进行新的开发。
  • 如果您的小部件是非交互式的,您可以在屏幕外绘制它们并将它们作为图像显示给网络引擎。

标签: c++ qt browser qtwebengine


【解决方案1】:

我无法以某种方式找到完全明确的答案,但是在porting guide 的末尾有一些东西表明它不再可能:

Qt WebEngine 使用 Skia 渲染网页,并且没有为此使用 QPainter 或 Qt。 HTML5 标准现在还提供了更好的替代方案,这些替代方案在 Qt WebKit 中引入本机控件插件时不可用。

没有QPainter 意味着在渲染期间无法绘制QWidget

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多