2010-11-29 96 views
5

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

我在其他项目中使用了wxWidgets,但是将所有东西都设置好并将这个大型图书馆与软件一起运送是一件很痛苦的事情。
但我真的很惊讶的使用真正的本地控制。 为了保持程序小我也试过fltk,但它有一个可怕的外观。

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

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

提前致谢!

+0

你需要什么控制? – 2010-11-29 19:51:50

+0

所有基本控制;按钮文本框输入字段单选按钮,如果可能的话进度条 – tbolender 2010-11-29 19:55:05

+6

跨平台GUI框架!=小。 – 2010-11-29 19:55:21

回答

6

当其名称中它几乎从来没有小词“框架”。

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

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

1

Qt令人惊讶,但不是很小。我发现真正缺乏“小型”跨平台GUI。你可能试图只用#ifdef来抽象你的GUI,或者使用Qt/wx。

4

对于gui工具包,wxwidgets是相当小的。

而且它是跨平台

http://www.wxwidgets.org/

你已经提到这个问题,但就跨平台工具包去它是我见过的最小的一个。

我唯一的建议是,你可以将你的代码包装到C库中,并将其链接到另一种语言。例如在windows和mono上使用.NET for Linux或甚至基于Java的应用程序(尽管它们并不总是看起来很原生的平台)。然后从那里使用你的图书馆。

0

和其他人一样,你不能在同一句话中混合使用“跨平台”并且体积不大。

更多的工作,规模较小: 我可以建议的一个解决方案是使用原生python绑定的UI部分。既然你已经在使用boost了,那么让Boost.Python在C++空间和python空间之间进行通信应该是相当简单的。你已经在Linux上安装了python,在Windows上安装了20-40MB的软件包(不记得最新版本有多大)。但是在这里你将不得不在Windows上使用win32绑定和在Linux上使用gtk/qt绑定,所以更多的工作。呃,太多的工作要维护,从头开始。

中度的工作,在大小,但与非本地控件小: 你可以尝试让杂乱或freeglut让你的用户界面所做的工作,但我个人没有使用过,所以我不知道他们是否提供全程本地寻找您的应用程序。但与wx或qt相比,它们的体积较小。

更少的工作,更大的尺寸: 使用WxWidgets,如果你已经适应它,否则我推荐Qt。

你也可以看看其他一些产品的:http://en.wikipedia.org/wiki/List_of_widget_toolkits

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

2

Ultimate++可能包含你所需要的。 (虽然他们使声音在FAQ,好像他们的图书馆是非常大的,它似乎并不认为对我不好。)

1

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