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 は、WebKit を使用して HTML5 をレンダリングする QWebView と呼ばれるウィジェット (別名コントロール、別名 GUI コンポーネント) を提供します。この 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 に答える