用于C ++的小型本机跨平台GUI框架

时间:2010-11-29 19:49:25

标签: c++ frameworks cross-platform native

我在c ++中用Boost写了一个小程序。它工作正常,所以我想给它一个图形界面,以便它更容易使用 为了做到这一点,我正在寻找提供原生外观和感觉的小型跨平台框架。 Windows和Linux支持就足够了,目前我不需要os x ...

我在其他项目中使用了wxWidgets,但是设置所有内容并使用该软件运送这个大型库是一件痛苦的事。
但我真的对使用真正的原生控件感到惊讶。 为了保持程序小,我也试过fltk,但看起来很糟糕。

我只需要一个没有网络支持或其他噱头的简单框架。

所以我的问题是:有没有符合所有要求的框架?或者如果没有,哪些框架至少符合其中一些需求?

提前致谢!

9 个答案:

答案 0 :(得分:7)

当它的名字中有“框架”这个词时,它几乎从不小。

无论如何,图形框架/库往往很大,因为他们需要处理很多东西。

Qt可能是跨平台GUI最直接的库,但它绝对不构成“小框架”。另一方面,在Linux系统上,很可能已经安装了Qt。此外,它肯定会支付它的大小。

答案 1 :(得分:4)

就gui工具包而言,wxwidgets相当小。

它是跨平台的

http://www.wxwidgets.org/

你已经提到了它,但就跨平台工具包来说,它是我见过的最小的工具包之一。

我唯一的另一个建议是,您可以将代码包装到C库中并将其链接到另一种语言。例如在Windows上使用.NET,在Linux上使用单声道,甚至是基于java的应用程序(尽管它们看起来并不总是非常原生于平台)。然后从那里使用你的库。

答案 2 :(得分:2)

Ultimate++可能包含您需要的内容。 (虽然他们在常见问题解答中听起来好像他们的图书馆真的很大,但对我来说似乎并不坏。)

答案 3 :(得分:2)

不要忘记检查juce

答案 4 :(得分:1)

Qt效果惊人,但不是很小。我发现真的缺少"小"跨平台的GUI。您可能尝试使用#ifdefs在整个地方抽象GUI,或者使用Qt / wx。

答案 5 :(得分:1)

如果你想让它变小,只需编写两次GUI - 一次在MFC中,然后在X中。你的GUI听起来很简单。构建您自己的小抽象,这正是您所需要的。

答案 6 :(得分:0)

像其他提到的那样,你不能在同一句话中混合使用“跨平台”和小尺寸。

更多工作,更小: 我可以建议的一个解决方案是对UI部分使用本机python绑定。由于你已经在使用boost,所以让Boost.Python在C ++空间和python空间之间进行通信应该是相当简单的。您已经在Linux上安装了python,在Windows上安装了一个20-40MB的软件包(不记得最新版本有多大)。但是在这里你将不得不在windows上使用win32绑定并在linux上使用gtk / qt绑定,因此需要做更多的工作。不,太多的工作需要维护,刮擦这个。

适度工作,体积较小但使用非原生控件: 您可以尝试使用杂乱或freeglut来完成UI工作,但我个人没有使用它们,因此我不知道它们是否为您的应用提供完整的原生外观。但与wx或qt相比,它们的尺寸较小。

减少工作量,增加尺寸: 如果你已经习惯了,请使用WxWidgets,否则我推荐Qt。

您还可以查看其他一些产品:http://en.wikipedia.org/wiki/List_of_widget_toolkits

杂乱:http://www.clutter-project.org/about FreeGLUT:http://freeglut.sourceforge.net

答案 7 :(得分:0)

这里有一堆活跃的和无效的跨平台C ++ UI库:https://philippegroarke.com/posts/2018/c++_ui_solutions/ 其中一些很小,看起来很自然。

答案 8 :(得分:-2)

听说过QT ???

http://qt.nokia.com/products/

我认为它应该满足您的所有需求