7

我想使用 Blink(或 Webkit、Gecko、KHTML,......任何类似的布局引擎;我不挑剔)作为从 C++ 程序呈现结构化数据的布局引擎。我希望能够将函数绑定到 DOM 事件以响应用户交互。

换句话说,我不想对图像资源使用 HTTP 协议、Javascript 甚至 URI(我打算将图像和视频内容从数据库直接传送到 DOM,假设这是可能的)。我只想要一个布局引擎,它可以让我通过 C++ 函数调用从头开始组装 DOM 树,并让我将函数指针绑定到用户交互事件。

我很难找到有关如何执行此操作的信息。那里的很多信息似乎都集中在更高级别的网络浏览器上,比如在应用程序中嵌入一个功能齐全的网络浏览器框架。我想知道是否有某种我可以使用的浏览器引擎的“最小子集”,以及什么可能是最快/最简单的入门方式。

4

2 回答 2

1

使用 Qt WebEngine(使用 Blink),您可以获得一个 Web 浏览器,您可以将数据从包含的应用程序中输入(描述于:http ://doc.qt.io/qt-5/qtwebkit-bridge.html )。您可以将文档作为预先形成的 QWebEnginePage 实例提供给它,并且可以使包含程序中的对象可用于在页面中运行的 JavaScript。因此,无需访问文件或 URI 就可以显示动态网页。

为了使用这个 Qt-WebKit 桥,你需要提供你想要作为 QObject 派生类访问的数据,并且你需要在你的构建过程中运行 qmake 工具,因为它依赖于 Qt 元对象编译器,所以你确实有点沉迷于 Qt 的世界。

另外,我不确定您正在从事什么项目,但我应该提到 Qt Quick 也值得一看 - 它做了类似的事情(使用可以包含 JavaScript 的 Web 浏览器呈现图形应用程序),但不是HTML 它使用一种很好的类似 JSON 的声明性语言,称为 QML。您可以在此处查看其功能的概述:http: //doc.qt.io/qt-5/qmlapplications.html

于 2015-06-17T16:45:46.563 回答
1

您可以在此处尝试 WebKit Widget 示例。

于 2015-08-12T16:22:40.433 回答