1

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

1 回答 1

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

于 2012-12-27T18:10:26.270 回答