it-swarm.dev

Wie erstelle ich native C ++ Apps mit HTML / CSS UI?

Ist es möglich, ein C++ - Programm unter Verwendung von HTML und CSS für die Benutzeroberfläche zu entwickeln? Ich weiß, wie man mit Javascript mithilfe eines Webkit-Containers programmiert, aber ich bin wirklich an der C++ - Entwicklung interessiert.

Ich habe mich in C # WPF verliebt, als ich unter Windows entwickelt habe, aber jetzt bin ich zu Linux gewechselt und habe kein gutes Werkzeug gefunden, um Markup für Schnittstellen zu verwenden. Dazu möchte ich HTML und CSS, die sehr leicht und benutzerfreundlich sind, mit C++ - Code und so etwas wie WPF mischen.

Oh, noch etwas: Ich suche Desktop-Entwicklung, nicht Web.

66
ranisalt

Ja, es ist möglich. Was Sie wollen, ist ein C++ - Webframework. Beginnen Sie mit CppCMS - einem kostenlosen Hochleistungs-Webentwicklungs-Framework (kein CMS) für die schnelle Entwicklung von Webanwendungen.

Bearbeiten : Nachdem die Frage geklärt wurde, denke ich, dass Awesomium gut zu Ihren Bedürfnissen passt.

Sie können die gleiche Funktionalität erzielen, indem Sie WebKit (oder Gecko) einbetten, aber meines Wissens ist dies genau das, was Awesomium hinter den Kulissen tut.

Eine Alternative ist Librocket - ein C++ - Interface-Middleware-Paket, das für Spieleanwendungen entwickelt wurde. Wie Sie der Beschreibung entnehmen können, eignet es sich gut für Spiele oder Echtzeitanwendungen.

33
user11617

Sciter ist genau das - einbettbare HTML/CSS-Engine mit C/C++ API. Kompakt und plattformübergreifend.

Und check dieser Artikel .

Sciter hat das gleiche Funktionsumfang wie WPF , verwendet jedoch HTML/CSS anstelle von XAML und die native API.

Sofort einsatzbereite Funktionen:

  • HTML, CSS, SVG, aPNG (animierte PNGs), Bild-Sprites,
  • <plaintext> - Editor mit Syntaxhervorhebung,
  • <htmlarea> - WYSIWYG HTML Editor,
  • <frame type=pager> - Druckvorschau und HTML/CSS-Druck,
  • animationen,
  • HTTP-Client, REST/JSON-Client, WebSocket, DataSockets,
  • etc.

Dieselbe Anwendung mit Sciter-Benutzeroberfläche unter Windows, MacOS und Linux aus denselben Quellen:

enter image description here

Haftungsausschluss: Ich bin Autor von Sciter Engine.

30
c-smile

Mit Chromium Embedded Framework können Sie HTML5-Inhalte in Ihre App einbetten. Sie werden die Leistungsfähigkeit und Geschwindigkeit von Chromium und die Fähigkeit erhalten, GUI-Apps auf dieselbe Weise zu erstellen, wie Sie Webanwendungen entwickeln.

7

Ich denke Electron wäre eine nette Ergänzung zu den anderen Antworten.

Es verwendet NodeJS, um ein Webkit-Fenster auszuführen. Electron selbst ist nur html/css/js, aber Sie können ein beliebiges Node Module in Ihrer Electron App verwenden - einschließlich benutzerdefinierten, nativ kompilierten C++ - Codes. Ein mögliches Modul zum Einbetten Ihres C++ - Codes wäre node -gyp.

Beachten Sie jedoch, dass dieser Workflow möglicherweise etwas mehr JS enthält als die anderen Antworten.

Mein Lieblingstexteditor Atom wurde mit Electron erstellt.

7
Johannes

Ab 2019 sollten Sie sich die ltralight HTML UI Engine ansehen
Nicht Open Source, Verfügbar für C++. OpenGL- und DirectX-Rendering unterstützt.

Ultralight ist die leichtere und schnellere Option, um HTML-UI in Ihre C++ - App zu integrieren.

Es wurde vom Schöpfer von Awesomium erstellt, der sich leider dazu entschlossen hat, Awesomium zu löschen. Das haben wir jetzt.

1
tomer zeitune