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

问题描述 投票:6回答:9

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

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

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

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

提前致谢!

c++ frameworks cross-platform native
9个回答
7
投票

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

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

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


4
投票

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

它是跨平台的

http://www.wxwidgets.org/

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

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


2
投票

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


2
投票

别忘了检查juce


1
投票

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


1
投票

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


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


0
投票

这里有一长串活跃和死亡的跨平台C ++ UI库:https://philippegroarke.com/posts/2018/c++_ui_solutions/它们中的一些很小并且具有原生外观。


-2
投票

曾经听说过QT ???

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

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

© www.soinside.com 2019 - 2024. All rights reserved.