为此,我正在寻找一个提供本地外观和感觉的小型跨平台框架。支持Windows和Linux就足够了,目前我不需要os x...
我曾经在其他项目中使用过wxWidgets,但是设置所有内容并将这个大型库与软件一起发布很麻烦。
但是我真的很惊讶于使用真正的本地控件。 为了使程序保持小巧,我还尝试了fltk,但它的外观很糟糕。
我只需要一个没有网络支持或其他花哨功能的简单框架。
所以我的问题是:是否有符合所有要求的框架?如果没有,哪些框架至少满足其中一些需求?
提前感谢!
wxWidgets是GUI工具包中比较小的一个,而且它是跨平台的。
你已经提到了它,但就跨平台工具包而言,这是我见过最小的之一。
我唯一的建议是,你可以将代码封装成C库,然后将其链接到另一种语言中。例如,在Windows上使用.NET,在Linux上使用mono,或者甚至是基于Java的应用程序(尽管它们并不总是看起来非常本地化)。然后从那里使用你的库。
Ultimate++可能包含您需要的内容。(虽然在常见问题解答中他们声称自己的库非常大,但我觉得还好。)
不要忘记也要检查一下juce
。技术相关内容。Qt的表现非常出色,但它并不是很小巧。我发现跨平台GUI中真正缺乏“小巧”的选择。你可能会尝试在各个地方使用#ifdef来抽象化你的GUI,或者使用Qt/wx。
这里有一个长列表,包括活跃和已停用的跨平台C++ UI库:https://philippegroarke.com/posts/2018/c++_ui_solutions/ 其中一些库很小且具有本地外观。
像其他人提到的那样,你不能在同一句话中混合使用“跨平台”和“小尺寸”。
更多的工作,更小的尺寸: 我可以建议的一个解决方案是使用UI部分的本地Python绑定。由于您已经在使用boost,因此应该很容易让Boost.Python在C++空间和Python空间之间通信。您已经在Linux上使用了Python,并且它是Windows上的一个20-40MB软件包(我不记得最新版本有多大)。但是在Windows上,您将不得不使用win32绑定,在Linux上使用gtk/qt绑定,因此需要更多的工作。嗯,维护太麻烦了,放弃这个想法吧。
适度的工作量,更小的尺寸但具有非本地控件: 您可以尝试使用clutter或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