web-dev-qa-db-ja.com

HTML / CSS UIを使用してネイティブC ++アプリを構築する方法

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

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

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

66
ranisalt

はい、可能です。必要なのは、C++ Webフレームワークです。 CppCMS —高速Webアプリケーション開発を目的とした無料の高性能Web開発フレームワーク(CMSではありません)を確認することから始めることができます。

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

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

代替手段は librocket —ゲームアプリケーション用に設計されたC++インターフェイスミドルウェアパッケージです。説明から推測できるように、ゲームやリアルタイムアプリケーションに適しています。

33
user11617

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で実行されるSciter UIを使用した同じアプリケーション:

enter image description here

免責事項:私はSciter Engineの著者です。

30
c-smile

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

7

Electron は他の答えに加えてニースになると思います。

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

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

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

7
Johannes

2019年の時点で ltralight HTML UI Engine を確認することをお勧めします
オープンソースではなく、C++で利用可能。 OpenGLおよびDirectXレンダリングがサポートされています。

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

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

1
tomer zeitune