我现有的Qt应用程序有一个'传统'GUI,包含带有QtWidgets的面板。我现在想要添加一个GUI面板,其中包括使用各种类型的图形反馈拖动2D贝塞尔曲线点。
我对新GUI的首选是HTML5,JavaScript和SVG。使用D3.js或Ractive.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和应用程序之间进行通信的唯一方法?
答案 0 :(得分:2)
看起来我需要的是addToJavaScriptWindowObject的QWebFrame方法,它使Qt对象可用于JavaScript,公开其属性和方法。
正在使用的一个例子是Form Extractor Example。
答案 1 :(得分:2)
如果任何其他人,比如我,在Qt 5.X天内偶然发现了这个问题,那么QtWebKit已被弃用。
现在,我们必须使用基于Chromium的渲染引擎QtWebEngine和QtWebChannel来与Qt和HTML-J进行来回通信。
Qt documentation中有一些不错的例子,一如既往。