我正在使用C++编写一个数字软件,并想要添加一个GUI(主要用于Windows)。我知道如何使用现代语言(如Java或.NET)中舒适的编辑器来制作GUI。现在我的问题是,添加GUI前端的最简单和最舒适的方法是什么。在工具的选择上完全自由(开源和可移植性会很好),但也请记住,如果GUI是用另一种语言(如C#)实现的,则需要维护多少样板代码和接口。
请不要建议将整个项目从C++切换!请注意,程序不需要太多C ++代码和GUI之间的交互。
我正在使用C++编写一个数字软件,并想要添加一个GUI(主要用于Windows)。我知道如何使用现代语言(如Java或.NET)中舒适的编辑器来制作GUI。现在我的问题是,添加GUI前端的最简单和最舒适的方法是什么。在工具的选择上完全自由(开源和可移植性会很好),但也请记住,如果GUI是用另一种语言(如C#)实现的,则需要维护多少样板代码和接口。
请不要建议将整个项目从C++切换!请注意,程序不需要太多C ++代码和GUI之间的交互。
Qt是一个不错的选择。它很稳定,拥有出色的C++接口(与MFC相比),并且有一个方便的设计工具。
然而,从零开始学习它可能需要投入更多的时间和精力。它确实有一定的学习曲线。
lex
和 yacc
(或 flex
/bison
)为 C 库,尽管你将 C 代码放入其中并且它们生成 .c
文件。很遗憾,它们依赖预处理 -- 预处理所做的所有好事情(信号/插槽)在纯 C++ 中也是可能的(至少在“现代时代”,而不是 Qt 设计时)。 (根据我的经验,“反射”部分仅用于隐藏人们设计中的问题。)这很令人沮丧,因为 Qt 在几乎所有其他方面都是如此高质量的库。 - Billy ONeal我不得不对所有这些解决问题的方法感到好笑。生活很美好。我的回应是我管理的一个产品。XVT可以为您完成它。最简单的方法是让我们为您完成或提供模板以达到目标。这只是一个问题,如果您有更多的钱而不是时间。那么我会建议您考虑我们。这将是您付出最少的努力和时间最短的选择。
根据您的需求,Mikko制作了一个很不错的imgui,可以很快地插入和使用。它是用opengl完成的,所以它不会成为您标准的Windows-gui,但它非常小且易于使用。您可以从这里下载r'lyeh的版本: http://code.google.com/p/colony9/source/browse/include/goo/imgui.h。
这是我知道的最简单、最舒适的方法,但它依赖于SDL。