我希望用HTML重写一个Qt应用程序,并让QtWebEngine为我渲染它。我完全理解HTML页面将在QtWebEngine中显示和运行。
然而,我真正感兴趣的一件事是,我无法找到文档 - 如果我正在寻找错误的地方而道歉 - 就是要知道QtWebEngine是否允许DOM的元素被“交换”为本机Qt小部件。例如,<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来找出“myWidget”的位置并自己在该位置绘制QOpenGLWidget像素数据?我真的不想沿着这条路走下去,因为它不允许像“myWidget”顶部的HTML对话框那样。
我真的很感激这里的任何信息。一个例子(如果这是可能的)将是太棒了。非常感谢提前。
答案 0 :(得分:2)
QtWebKit
的解决方案:
您需要继承QWebPluginFactory
并在其create方法中创建窗口小部件。
然后,您可以使用<object>
标记
<object type="application/x-qt-plugin" name="myWdget" classid="QOpenGLWidget">
</object>
...对于新的QtWebEngine
似乎无效。