HTML / CSSUIを使用してネイティブC ++アプリを構築するにはどうすればよいですか?


83

ユーザーインターフェイスにHTMLとCSSを使用しながらC ++プログラムを開発することは可能ですか?Webkitコンテナを使用したJavascriptでのプログラミングについては知っていますが、C ++開発に非常に興味があります。

Windowsで開発したときはC#WPFに夢中になりましたが、今はLinuxに移行し、インターフェイスにマークアップを使用するための優れたツールが見つかりませんでした。このために、非常に軽量で使いやすいHTMLとCSSを、C ++コードとWPFのようなものと組み合わせたいと思います。

ああ、もう1つ、Webではなくデスクトップ開発を探しています。

回答:


40

はい、可能です。必要なのはC ++ Webフレームワークです。まずCppCMSを見てみましょう。これは、迅速なWebアプリケーション開発を目的とした無料の高性能Web開発フレームワーク(CMSではありません)です。

編集:質問が明確になった後、Awesomiumはあなたのニーズにぴったりだと思います。

WebKit(またはGecko)を埋め込むことで同じ機能を実現できますが、私が知る限り、それはまさにAwesomiumが舞台裏で行っていることです。

別の方法はlibrocketです。これは、ゲームアプリケーション用に設計されたC ++インターフェイスミドルウェアパッケージです。説明から推測できるように、ゲームやリアルタイムアプリケーションに最適です。


3
しかし、これは実行可能ファイル用にコンパイルされますか?Webではなくデスクトップを探しています。
ranisalt 2013

4
ユーザーがブラウザーを起動してローカルホストに移動し、アプリケーションのインターフェースを使用できるようにしますか?または、ユーザーに実行可能ファイルを開いてWebインターフェイスを表示させますか?

15
@RobertDinu彼は、C ++でデスクトップアプリケーションを構築し、HTML / CSSでユーザーインターフェイスを作成したいと考えています
Leonardo Arroyo 2013

4
@RobertDinu:OPに役立つ可能性のあるlibRocket(librocket.com)と呼ばれる小さくて軽いライブラリもあります。適切だと思われる場合は、回答に追加することをお勧めします。
yzt 2013

これにより多くの時間を節約できることがわかります。このアプローチはいつでも問題につながるでしょうか?
期限切れの忍者2015

35

Sciterはまさにそれです-C / C ++ APIを備えた埋め込み可能なHTML / CSSエンジン。コンパクトでマルチプラットフォーム。

そして、この記事をチェックしてください

Sciterには、WPFと同じ機能セットがありますがありますが、XAMLの代わりにHTML / CSSを使用し、ネイティブAPIを使用します。

箱から出してすぐに使える機能:

  • HTML、CSS、SVG、aPNG(アニメーションPNG)、画像スプライト、
  • <plaintext> -構文を強調表示したエディター、
  • <htmlarea> -WYSIWYG HTMLエディター、
  • <frame type=pager> -印刷プレビューとHTML / CSS印刷、
  • アニメーション、
  • HTTPクライアント、REST / JSONクライアント、WebSocket、DataSocket、

同じソースからのWindows、MacOS、およびLinuxで実行されているSciterUIを備えた同じアプリケーション:

ここに画像の説明を入力してください

免責事項:私はSciterEngineの作者です。


2
私はC ++の初心者ですが、ドキュメントが不足していて、初心者には怖いです。ドキュメントは、コードブロックまたはシェルでデモを実行して、それが機能するかどうかを確認する方法から始める必要があります。プロジェクト
repzero 2016年

@repzeroこの記事をチェックしてくださいcodeproject.com/Articles/859098/…、C++初心者に適していると思います。
c-smile

2
@repzeroコードブロックの時点で、そのIDEで{sciter-sdk} /demos/usciter/usciter.cbpを開き、Release64ターゲットを選択して、[ビルドして実行]ボタンをクリックするだけです。アプリが実行されているはずです。
c-smile

@ c-smileここでいくつかのガイダンスをありがとう。コードブロックでプロジェクトを実行しようとすると、致命的なエラー「gtk / gtk.h no such file or directory」が表示されます。このエラーは、「sciter-x」のインクルードステートメントから発生していました。 -types.h "ヘッダーファイル... debianjessieを実行しています。gtk.hファイルを含むgtkという名前のフォルダーがあります。このフォルダは「/user/include/gtk-2.o/gtk」にあります。何かアドバイスはありますか?
repzero 2016年

Linuxでは、SciterにはGTK3が必要です。サンプルをビルドしたい場合は、gtk開発パッケージが必要になります。試してみてくださいsudo apt-get install libgtk-3-dev
c-smile

11

Electronは他の答えへの素晴らしい追加になると思います。

NodeJSを使用してWebkitウィンドウを実行します。Electron自体はhtml / css / jsのみですが、カスタムのネイティブにコンパイルされたC ++コードを含め、Electronアプリ内で任意のノードモジュールを使用できます。C ++コードを埋め込むための可能なモジュールはnode-gypです。

ただし、このワークフローには、他の回答の場合よりも少し多くのJSが含まれる場合があることに注意してください。

私のお気に入りのテキストエディタであるAtomは、Electronで作成されました。


9

Chromium Embedded Frameworkを使用して、アプリにHTML5コンテンツを埋め込むことができます。Chromiumの力とスピード、そしてWebアプリケーションを開発するのと同じ方法でGUIアプリを構築する能力を手に入れることができます。


4

2019年の時点で 、C ++で利用可能なUltralightHTML UI Engine
Not OpenSourceをチェックすることをお勧めします。OpenGLおよびDirectXレンダリングがサポートされています。

Ultralightは、HTMLUIをC ++アプリに統合するためのより軽量で高速なオプションです。

これは、残念ながらAwesomiumを削除することを決定したAwesomiumの作成者によって作成されました。これが私たちが今得たものです。

軽量ではなく重いものが必要な場合は、CEFを確認することをお勧めします。これは非常に強力な(そしてオープンソースの)ツールです。


1
また、クローズドソースは非常に、非常に残念なことであるというAwesomiumは:(することが可能であったものを考える
ranisalt

Ultralightを試してみましたが、失敗しました。lib-not-foundエラーのため、ブラウザサンプルを実行することさえできませんでした。含まれているフォルダーは間違いなく私のPATH変数にあります。基本アプリをコンパイルしようとしましたが、成功しませんでした。コンパイラは、grepを使用して証明できたため、どこにも宣言されていないクラス設定を見つけることができませんでした。(Ubuntuの18.4)
testalucida

@testalucidaUltralightのSlackワークスペースでサポートを求めることができます。
tomerzeitune19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.