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

user interface - Easiest way to add a GUI to C++ app

本文关键字:GUI 最简单 方法 添加 应用程序 C++ 用户界面      更新时间:2023-10-16

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

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

这个答案的评论中关于ISO C++的语句编辑得很差。这里提出的任何解决方案都不会对计算代码提出更改为C++的不同方言的要求。GUI代码本身可能是另一回事。

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

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

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

还有各种工具包诞生在其他平台上,并已被适当地移植到Windows。想到GTK、QT、FLTK和WxWindows。我没有使用任何与之相关的对话框布局/应用程序设计器工具,也根本没有使用QT。当我上次查看QT时,它对GUI代码进行了特殊的预处理。除此之外,据我所知,这些便携式工具包都是纯ISO C++。

作为一个真正的选项,可以使用"libx"对X Window System协议进行编程。据我所知,这将不涉及非ISO C++代码。

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

wxWidgets是C++的跨平台GUI的不错选择

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

C++通常会产生更流畅、更好的GUI,但它需要更多的开箱即用的工作。

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

我不得不为剥这只猫皮的所有方法而发笑。生活是美好的。我的反应是我管理的产品。XVT可以为您做到这一点。最简单的方法是让我们为您做这件事,或者给您一个模板。这只是你的钱是否比时间多的问题。然后我会看着我们。这将是你最快、最少的努力。

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

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

这是我所知道的最简单、最舒服的方法,但它取决于SDL。