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


80

使用HTML和CSS作为用户界面时是否可以开发C ++程序?我了解使用Webkit容器使用Javascript进行编程的知识,但是我对C ++开发确实很感兴趣。

当我在Windows下开发时,我感到爱上C#WPF,但是现在我转而使用Linux,但找不到用于将标记用于接口的好工具。为此,我想将HTML和CSS(它们非常轻巧且易于使用)与C ++代码和WPF等混合使用。

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

Answers:


38

是的,有可能。您想要的是一个C ++ Web框架。您可以从CppCMS开始-CppCMS —一种旨在快速Web应用程序开发的免费高性能Web开发框架(不是CMS)。

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

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

另一种选择是librocket —一种为游戏应用程序设计的C ++接口中间件软件包。从描述中可以猜到,它非常适合游戏或实时应用程序。


3
但这会编译为可执行文件吗?我在寻找台式机,而不是网络。
ranisalt

4
您是否希望用户能够启动浏览器并导航到localhost并使用应用程序的界面?还是要用户打开可执行文件并显示Web界面?

15
@RobertDinu我认为他想使用C ++构建桌面应用程序并使用HTML / CSS创建用户界面
Leonardo Arroyo

@RobertDinu第二。
ranisalt

4
@RobertDinu:还有一个更小/更轻的库libRocket(librocket.com),可能对OP有用。如果您认为合适,可以将其添加到答案中。
yzt

35

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

并检查这篇文章

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

开箱即用的功能:

  • HTML,CSS,SVG,aPNG(动画PNG),图像图片,
  • <plaintext> -具有语法高亮显示的编辑器,
  • <htmlarea> -所见即所得的HTML编辑器,
  • <frame type=pager> -打印预览和HTML / CSS打印,
  • 动画,
  • HTTP客户端,REST / JSON客户端,WebSocket,DataSocket,
  • 等等

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

在此处输入图片说明

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


2
我是C ++的初学者,但是我发现文档太少了,让初学者感到恐惧..文档应该从如何在代码块甚至外壳程序中运行演示开始,以查看它是否有效...请在您的产品中添加更多的营销工作项目
repzero

@repzero检查本文codeproject.com/Articles/859098/…,我认为它适合C ++初学者。
c-smile

2
@repzero从代码块开始,只需在该IDE中打开{sciter-sdk} /demos/usciter/usciter.cbp,选择Release64 target并单击“ Build and Run”按钮-您应该看到该应用程序正在运行。
c-smile

@ c-smile感谢您的指导。当我尝试在代码块中运行项目时,出现致命错误“ gtk / gtk.h,没有这样的文件或目录”,此错误源于“ sciter-x”中的include语句-types.h”头文件...我正在运行debian jessie ..我有一个名为gtk的文件夹,其中包含gtk.h文件。该文件夹位于'/user/include/gtk-2.o/gtk'..有什么建议吗?
repzero

在Linux上,Sciter需要GTK3。如果您想构建样本,则需要gtk开发包,请尝试sudo apt-get install libgtk-3-dev
c-smile

10

我认为Electron将是其他答案的不错补充。

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

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

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



4

从2019年开始,我建议您检查一下Ultralight HTML UI Engine
Not Open Source(可用于C ++)。支持OpenGL和DirectX渲染。

Ultralight是将HTML UI集成到C ++应用程序中的更轻便,更快捷的选择。

它是由Awesomium的创建者制作的,很不幸,他决定删除Awesomium。这就是我们现在得到的。

如果您需要重量更重而不是轻量的东西,我建议您看看CEF。这是一个非常强大的(开放源代码)工具。


1
考虑到Awesomium的功能,它是封闭的,非常非常不幸:(
ranisalt

我尝试了Ultralight,但失败了。由于找不到lib的错误,甚至无法运行Browser示例。包含文件夹肯定在我的PATH变量中。尝试编译Basic App,但未成功。编译器找不到类设置,该类在任何地方都没有声明过,因为我可以使用grep进行证明。(Ubuntu 18.4)
testalucida

@testalucida您可以在Ultralight的Slack工作区中寻求支持。
tomer zeitune
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.