将HTML5 GUI事件连接到Qt应用程序

时间:2014-01-25 09:43:14

标签: html5 qt svg qwebview

我现有的Qt应用程序有一个'传统'GUI,包含带有QtWidgets的面板。我现在想要添加一个GUI面板,其中包括使用各种类型的图形反馈拖动2D贝塞尔曲线点。

我对新GUI的首选是HTML5,JavaScript和SVG。使用D3.jsRactive.js等库。我可以通过开发QtWidget(实现QGraphicsScene)来更轻松地开发这个GUI - 再加上HTML5路线,我可以在应用程序的在线版本中重复使用代码。

尽管Qt's website saying that I can develop my whole UI with HTML5我找不到如何从用户操作接收C ++端的事件或信号的示例 - 或者我如何将C ++方法暴露给WebView中的JavaScript对象。

通过在C ++端实现Web服务器并使用JavaScript中的AJAX请求返回到父应用程序,我是否可以在Web UI和应用程序之间进行通信的唯一方法?

2 个答案:

答案 0 :(得分:2)

看起来我需要的是addToJavaScriptWindowObjectQWebFrame方法,它使Qt对象可用于JavaScript,公开其属性和方法。

正在使用的一个例子是Form Extractor Example

答案 1 :(得分:2)

如果任何其他人,比如我,在Qt 5.X天内偶然发现了这个问题,那么QtWebKit已被弃用。

现在,我们必须使用基于Chromium的渲染引擎QtWebEngineQtWebChannel来与Qt和HTML-J进行来回通信。

Qt documentation中有一些不错的例子,一如既往。