如何使用HTML/CSS UI构建本机C++应用程序?

ran*_*alt 72 html css c++ user-interface desktop-application

是否可以在为用户界面使用HTML和CSS时开发C++程序?我知道使用Webkit容器使用Javascript进行编程,但我对C++开发很感兴趣.

当我在Windows下开发时,我感觉爱上了C#WPF,但是现在我转向Linux并且我没有找到一个使用标记接口的好工具.为此,我想混合HTML和CSS,它们非常轻巧,易于使用,使用C++代码,比如WPF.

哦,还有一件事:我正在寻找桌面开发,而不是网络.

小智 33

对的,这是可能的.你想要的是一个C++ Web框架.您可以从查看CppCMS开始- 一个针对快速Web应用程序开发的免费高性能Web开发框架(不是CMS).

编辑:问题澄清后,我认为Awesomium非常适合您的需求.

您可以通过嵌入WebKit(或Gecko)来实现相同的功能,但据我所知,这正是Awesomium在幕后所做的事情.

另一种选择是librocket -a C++接口中间件包,专为游戏应用程序而设计.正如您可以从描述中猜测的那样,它非常适合游戏或实时应用程序.

  • @RobertDinu我想他想用C++构建一个桌面应用程序并用HTML/CSS创建用户界面 (13认同)
  • 您是否希望用户能够启动浏览器并导航到http:// localhost /并使用您的应用程序的界面?或者您是否希望用户打开可执行文件并显示Web界面? (4认同)
  • @RobertDinu:还有一个更小/更轻的库,名为libRocket(http://librocket.com/),可能对OP有用.如果您认为合适,可能需要将其添加到答案中. (4认同)
  • 但是这会编译为可执行文件吗?我正在寻找桌面,而不是网络. (2认同)

c-s*_*ile 32

Sciter就是这样 - 可嵌入的HTML/CSS引擎和C/C++ API.紧凑的多平台.

并查看这篇文章.

Sciter具有与WPF相同的功能集,但使用HTML/CSS而不是XAML并使用本机API.

开箱即用的功能:

  • HTML,CSS,SVG,aPNG(动画PNG),图像精灵,
  • <plaintext> - 带语法高亮的编辑器,
  • <htmlarea> - WYSIWYG HTML编辑器,
  • <frame type=pager> - 打印预览和HTML/CSS打印,
  • 动画,
  • HTTP客户端,REST/JSON客户端,WebSocket,DataSockets,
  • 等等

与来自相同来源的Windows,MacOS和Linux上运行的Sciter UI相同的应用程序:

在此输入图像描述

免责声明:我是Sciter Engine的作者.

  • 我是 C++ 的初学者,但我发现文档对于初学者来说很少而且很可怕。文档应该从如何在代码块甚至 shell 中运行演示开始,看看它是否有效......请在你的项目中添加更多的营销工作项目 (2认同)
  • @repzero 对于代码块,只需在该 IDE 中打开 {sciter-sdk}/demos/usciter/usciter.cbp,选择 Release64 目标并单击“构建并运行”按钮 - 您应该会看到应用程序正在运行。 (2认同)

Vad*_*kov 7

您可以使用Chromium Embedded Framework在您的应用中嵌入HTML5内容.您将获得Chromium的速度和速度以及构建GUI应用程序的能力,与开发Web应用程序的方式相同.

  • Chromium 的力量和速度……以及尺寸;) (5认同)

Joh*_*nes 7

我认为Electron将是其他答案的一个很好的补充.

它使用NodeJS来运行Webkit窗口.Electron本身只是html/css/js,但您可以使用Electron App中的任何节点模块 - 包括自定义的,本机编译的C++代码.嵌入C++代码的可能模块是node-gyp.

但请注意,此工作流程可能包含比其他答案更多的JS.

我最喜欢的文本编辑器Atom是用Electron制作的.


tom*_*une 5

我建议查看Ultralight HTML UI Engine
Not Open Source, Available for C++。支持 OpenGL 和 DirectX 渲染。

Ultralight 是在 C++ 应用程序中集成 HTML UI 的更轻、更快的选择。

它是由 Awesomium 的创建者制作的,不幸的是,他决定删除 Awesomium。

如果您需要更重的东西,我建议您查看CEF。这是一个非常强大(和开源)的工具。