用于使用XML定义的GUI创建C ++本机应用程序的库?

时间:2012-12-21 06:33:35

标签: c++ xml user-interface native xul

我需要一个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

1 个答案:

答案 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等)。构建安装程序可以解决问题。