我正在编写一个相当大而复杂的数据分析程序,我已经达到了我认为是时候为程序构建GUI的时候了.所以我的问题是:
我应该使用哪个GUI工具包?
我对编码和构建GUI完全陌生,并且非常感谢可以提供的任何指导.它不一定是世界上最简单的工具包,我学得很快.但是,它确实需要能够执行以下操作(如果不是所有这些对于任何给定的工具包都可能是非常基本的,但我认为将所有这些放在那里以防万一是好的).
它必须允许我直接绘制到屏幕上,以便我可以将图形(光谱确实),图形和类似的东西放在用户看到.我需要能够收集他们点击上述光谱的位置信息.我需要能够显示文本并从用户那里获取文本输入.它需要能够生成菜单(你知道文件,编辑等).如果它有一些内置的小部件用于生成会很方便的表(虽然我可以克服缺乏,如果我可以直接绘制到屏幕).它需要能够弹出警告,对话框,保存和打开框等.这就是它,当我把它们写出来时,大多数这些看起来非常基本,但我不想让GUI部分编码和然后意识到II需要用不同的工具包重写它.
应该注意的是,我用C++编写了这个程序,并且我不想用C或其他东西编写GUI部分,因此工具包需要支持C++.
此外,跨平台工具包优于单个平台工具包.但是,如果它必须是单个平台工具包,那么我更希望它适用于Linux.
最后,我会优先考虑将开源工具包改为封闭源工具包.
除此之外,我无法想到要添加的任何内容.提前感谢您的时间和答案.
嗯基于答案,我将看看Qt和wxWidgets,看看哪个更吸引我.我可以接受多个答案,但我不能,因为我正在看两件事,只接受其中一个答案是不公平的,也许在一两个星期后我就看了工具包并想通了出来我想用.
对于C++,在我看来,Qt是最不令人沮丧和最全功能的工具包.它也是完全跨平台的.请注意,当版本4.5可用时,Qt将在2009年3月的某个时间获得LGPL许可.目前,它仅提供GPL和商业许可版本.
Qt的GUI设计师很好.它有很多实用功能(场景图库,翻译支持,内置Javascript引擎,内置WebKit库).通过MOC(一种特殊的预编译器),它还为C++带来了一些运行时绑定功能和内省.
对于您的技术应用程序,您可能会发现Qwt(http://qwt.sourceforge.net/)提供了您所需的功能.它建立在Qt之上.
如果你想要没有GUI的实用程序支持(例如网络等),Qt甚至可以使用"无头".
另一个跨平台C++选项是wxWidgets,它可以使用,但不能与Qt真正比较.它是一个低级别的工具包,并不是那么容易使用或完全舍入.Gtkmm是另一种选择,本着GTK +的精神.
试试WxWidgets.跨平台(在Linux,Mac OS X和Windows上编译)并被广泛接受.
http://www.wxwidgets.org/
开源也是!
我看到没有人对GTKmm发表评论.它是GTK +的C++版本,使用它真的很愉快.我也使用过Qt,但我不喜欢凌乱的信号/连接代码,moc_XXX生成的文件等.GTKmm有信号等,但不是那个预处理步骤,以及几乎所有的Qt工具包都可以提供图形竞技场.