Joh*_*rer 8 c++ user-interface programming-languages
我正在用C++制作一个数字软件,并希望添加一个GUI(主要用于Windows).我知道如何使用Java或.NET等现代语言中的舒适编辑器生成GUI.现在我的问题是为程序添加GUI前端的最简单,最舒适的方法是什么.在完全免费的工具选择(开源和可移植性会很好),但请记住,如果GUI是用另一种语言实现的话,需要维护多少样板代码和接口(如C#) .
请不要建议从C++切换整个项目!请注意,该程序不需要C++代码和GUI之间的太多交互.
Qt是一个不错的选择.它很稳定,有一个很棒的C++接口(而不是MFC)并且有一个方便的设计工具.
从头开始学习它的开销可能更多是你愿意投资的.它确实有一定的学习曲线.
在这个答案的评论中关于ISO C++的陈述编辑很少.这里提出的解决方案都没有将计算代码强加给改变为不同的C++方言的要求.GUI代码本身可能是另一个故事.
将Windows窗体与托管C++一起使用的答案可能是最实用的.很多与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++代码.