QtWebEngine 在 DOM 中呈现本机 Qt 小部件?

QtWebEngine rendering native Qt widgets in DOM?

我希望在 HTML 中重写一个 Qt 应用程序,并让 QtWebEngine 为我呈现它。我完全理解 HTML 页面将在 QtWebEngine 中显示 运行。

但是,我真正感兴趣的一件事是,我无法找到有关的文档——如果我找错地方了,我深表歉意——就是知道 QtWebEngine 是否允许 DOM 的元素到对于本机 Qt 小部件是 "swapped"。例如,<div id="myWidget"> 实际上可能是 QOpenGLWidget 吗?这完全是荒谬的吗?

例如,我希望能够做到:

<body>
<h1>Example</h1>
<div id="myWidget">
</div>
<p>Some text</p>
</body>

并且神奇地将我的 QOpenGLWidget 呈现在 DOM 中而不是 "myWidget"。我的 HTML 只能由 QtWebEngine 呈现,不一定由其他浏览器呈现,所以如果有一个解决方案意味着它在 Chrome/Firefox/IE 中不起作用,那对我来说绝对没问题。

...或者我是否必须在 QtWebEngine 实例中使用 javascript 运行ning 来找出 "myWidget" 的位置并自己在该位置绘制 QOpenGLWidget 像素数据?我真的不想走这条路,因为它不允许 "myWidget".

顶部的 HTML 对话框之类的东西

如果能提供任何信息,我将不胜感激。一个例子(如果这可能的话)会很棒。非常感谢。

QtWebKit的解决方案:

您需要继承 QWebPluginFactory 并在其创建方法中创建您的小部件。 然后,您可以使用 <object> 标签将小部件嵌入 HTML 中:

<object type="application/x-qt-plugin" name="myWdget" classid="QOpenGLWidget">
</object>

See example here

And another example here

...似乎对新 QtWebEngine.

不再有效