向C ++应用程序添加GUI的最简单方法

时间:2011-06-03 22:36:40

标签: c++ user-interface programming-languages

我正在用C ++制作一个数字软件,并希望添加一个GUI(主要用于Windows)。我知道如何使用Java或.NET等现代语言中的舒适编辑器生成GUI。现在我的问题是为我的程序添加GUI前端最简单,最舒适的方法是什么。在完全免费的工具选择(开源和可移植性会很好),但请记住,如果GUI是用另一种语言实现的话,需要维护多少样板代码和接口(如C#)

请不要建议从C ++切换整个项目!请注意,该程序不需要在C ++代码和GUI之间进行太多交互。

8 个答案:

答案 0 :(得分:6)

Qt是一个不错的选择。它很稳定,有一个很棒的C ++接口(与MFC相对),并且有一个方便的设计工具 从头开始学习它的开销可能更多是你愿意投资的。它确实有一定的学习曲线。

答案 1 :(得分:6)

本答案评论中有关ISO C ++的陈述编辑不当。这里提出的解决方案都没有将计算代码强加给改变为不同的C ++方言的要求。 GUI代码本身可能是另一个故事。

使用带有托管C ++的Windows窗体的答案可能是最实用的。很多与UI相关的代码都是C ++的方言(扩展),其中.NET垃圾收集的指针将与传统的ISO C ++指针一起生成。我没有使用过这种方法,但从我读到的内容可能比我用过的方法更好。

如果您不想为此任务投入.NET知识,那么MFC可能更实用。它使用标准C ++构造来包装Windows API。 Windows API使用C ++通常不使用的特定调用约定,并且它需要C ++的扩展才能使用它,但这与使用C ++程序调用某些外部“C”的函数没什么不同。 Visual Studio有一个GUI布局工具,它非常擅长对话框的布局,并将对话框小部件连接到反映小部件状态的变量。我用过这个。如果您可以将GUI下载到对话框,那么这将是一个很好的选择,否则您将使用MFC的布局管理窗口之一。

显然,上述选项无法处理您可能想到的其他平台。

还有其他平台上出现的各种工具包,并且已经很好地移植到Windows上。想到GTK,QT,FLTK和WxWindows。我没有使用任何与之配合使用的对话框布局/应用程序设计器工具,我根本没有使用过QT。当我上次审查QT时,它有一个特殊的GUI代码预处理过程。除此之外,据我所知,这些便携式工具包是纯ISO C ++。

作为一个真正的外出选项,可以使用“libx”编程到X Window系统协议。据我所知,这将不涉及非ISO C ++代码。

答案 2 :(得分:4)

wxWidgets对于C ++的跨平台GUI来说是个不错的选择

答案 3 :(得分:3)

尽管我喜欢C ++,但很难用它构建GUI。我将构建一个快速的C#WinForms应用程序,它允许您使用Visual Studio的可视化设计器(拖放按钮等),并使用P / Invoke调用您的C ++应用程序。

C ++通常会产生更流畅,更好的图形用户界面,但它需要更多的工作开箱即用。

答案 4 :(得分:1)

如果它只是一个简单的GUI,主要由标准控件组成,我会使用MFC。它可能已经过时而且从来没有真正好过,但是让本机Windows GUI快速启动并运行仍然很有用。

答案 5 :(得分:1)

我不得不轻笑一下这只猫的皮肤。生活很好。我的回答是我管理的产品。 XVT可以为你做到。最简单的方法是让我们为您做或给您一个模板来实现目标。这只是一个问题,如果你有更多的钱比时间。然后我会看着我们。这将是您最快和最少的努力。

答案 6 :(得分:0)

基于MFC对话框的应用程序可以满足需求。

答案 7 :(得分:0)

根据您的需要,Mikko制作的漂亮的imgui可以简单地插入并快速使用。它虽然在opengl中完成,但它不会是你的标准windows-gui,但它真的很小,而且非常容易使用。你可以从这里下载r'lyeh的版本:http://code.google.com/p/colony9/source/browse/include/goo/imgui.h

这是我所知道的最简单,最舒适的方式,但它依赖于SDL。