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

QtWebEngine在DOM中呈现本机Qt小部件?,qt,qtwebengine,Qt,Qtwebengine,我希望用HTML重写一个Qt应用程序,并让QtWebEngine为我呈现它。我完全理解HTML页面将在QtWebEngine中显示和运行 然而,有一件事我很感兴趣,但我找不到相关文档——如果我找错了地方,我深表歉意——那就是了解QtWebEngine是否允许将DOM元素“交换”为本机Qt小部件。例如,是否真的是QOpenGLWidget?这完全是无稽之谈吗 e、 g我希望能够做到: <body> <h1>Example</h1> <div id="myW

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

然而,有一件事我很感兴趣,但我找不到相关文档——如果我找错了地方,我深表歉意——那就是了解QtWebEngine是否允许将DOM元素“交换”为本机Qt小部件。例如,
是否真的是QOpenGLWidget?这完全是无稽之谈吗

e、 g我希望能够做到:

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

例子
一些文本

神奇的是,我的QOpenGLWidget在DOM中代替了“myWidget”。我的HTML只能由QtWebEngine呈现,不一定由其他浏览器呈现,因此,如果有一种解决方案意味着它不能在Chrome/Firefox/IE中工作,那我绝对可以接受

…还是我必须使用运行在QtWebEngine实例中的javascript来找出“myWidget”的位置,并自己在该位置绘制QOpenGLWidget像素数据?我真的不想走这条路,因为它不允许在“myWidget”顶部出现HTML对话框

我真的很感激这里的任何信息。举个例子(如果这是可能的话)会很好。非常感谢。

解决方案:

您需要在其create方法中对小部件进行子类化和创建。 然后,您可以在HTML中嵌入带有
标记的小部件:

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


…似乎不再适用于新版本。

谢谢阿尔奇!不幸的是,这些似乎与QtWebEngine不兼容-请参阅此处的“不可用的Qt WebKit API”:哦,对了,我的错。与WebKit相比,新的QtWebEngine的可扩展性非常有限。您是否可以使用QtWebKit切换回原来的状态?我当然会尝试一下-非常感谢您的回答。这至少突出了我所追求的Qt是可能的。