我需要一个C ++库来创建独立的本机应用程序。该库应支持使用XML标记创建GUI。我已经获得了有关Mozilla的XUL的一些信息,但是这个XUL需要XULRunner来运行该应用程序。
场景是这样的:
What I have:
(1) C++ code in .cpp files
(2) GUI defined in .xml files
The output I need:
A single stand-alone native application
答案 0 :(得分:1)
经过数小时的测试,我得出了一个结论。将Qt用于所讨论的目标是完美的。
Qt提供了一个名为QWebView的小部件(又名控制,又称GUI组件),它使用WebKit呈现HTML5。我们可以将此QWebView与QMainWindow一起使用,以形成与本机相似的应用程序。
从C ++调用JS可以这样做:
QWebView Webview;
Webview->load(...);
...
Webview->page()->mainFrame()->evaluateJavaScript("alert('whatever');");
从JS调用C ++可以类似地完成:
//(1) in C++ code:
QWebView Webview;
Webview->load(...);
QObject Object; //or any object inherited from QObject
...
Webview->page()->mainFrame()->addToJavaScriptWindowObject("Cpp",&Object);
//(2) in HTML/JS code:
<script>
Cpp.some_function(); //declared in the QObject above, with 'public slots:'
</script>
但是,结果很难成为单个二进制文件,因为应用程序需要Qt的动态链接库(Qt核心,Qt gui,Qt网络,Qt webkit等)。构建安装程序可以解决问题。