最简单的跨平台小部件工具包是什么?

7

什么是最简单的跨平台小部件工具包?我正在寻找一个最小化覆盖Windows、OSX和Linux的C或C++接口。


回应EMK和其他人 -> 开发的易用性是首要考虑的,同时相对丰富的集合也很重要 - 例如表格小部件是必不可少的。C++可以使用。 - Stephen
如果您正在阅读这些答案,您可能还想参考这个类似的问题 - Nick
6个回答

11

我个人没有使用过任何带有C API的工具,但是wxWidgets是用C++编写的。它可以在Windows、Linux和Mac OS X上运行。如果你想要简单易用的工具,wxPython是围绕wxWidgets编写的Python包装器,非常容易使用。


9

我非常喜欢Qt。现在已经在几个项目中使用它。

虽然我目前正在工作的项目只能在Windows上发布,但我们的一些开发人员在Mac OS X下使用gcc编写代码。使用不同的编译器和环境有助于定位错误和漏洞。

我忘了提到Qt有非常好的文档,其中包括许多实用的示例,有助于快速入门。


我也使用过Qt - 那很有趣(而且我讨厌C和C++)。我从未见过一个文档编写得更好的API(内容和外观感受都很好)。 - dermoritz

6
我曾经在职业上使用过wxWidgets和QT。两者都能够满足你的需求。哪一个更容易使用很难说。你没有告诉我们你是想要易于使用还是易于学习的。Qt对于大型程序来说更容易一些。WxWidgets则更容易学习。这主要是由于QT中的信号/槽机制,这是一种良好但非直观的架构,适用于大型应用程序。
这两个库的表现实际上非常出色,我也会建议它们用于非跨平台编程。

我同意这个评论,但Qt文档非常好。Qt4的另一个好处是Designer应用程序,这使得很大的不同。我还没有遇到任何与Wx一样好的东西。 - Nick

5

我认为GTK在Mac OS X上除了通过X11子系统(这使它看起来非常不像本地应用程序)之外无法工作。 - pdc
1
我曾经参与开发一个大型跨平台应用程序,使用了FLTK框架,但我们后悔使用它。建议将其保留用于小型项目。 - Justsalt
@Justsalt:有趣。你能解释一下你遇到了什么问题吗?我一直认为FLTK相当稳定,虽然比其他工具包小。 - sleske

5
与其他海报一样,我强烈建议看一下C++工具包。GTK将在Windows和Mac OS上运行,但只会在Linux上给您带来真正好的结果。甚至一些GTK维护者正在发明他们自己的面向对象的C方言,以避免针对本地GTK API编写GUI。
至于C ++,这取决于你想要什么。便于开发?每个平台上的原生GUI?商业支持?
如果您想要在Win32和Linux上看起来像本地的GUI(以及在Mac上看起来合理的东西),一个很好的选择是wxWidgets。这里有一个更长的文章,介绍了实际的wxWidgets使用经验。自2002年撰写该文章以来,Mac端口已经得到了大幅改进,但仍存在一些软肋。

开发容易,而且相对丰富 - 例如表格小部件是必不可少的。C++可以。 - Stephen
wxWidgets和QT都应该在您的候选名单上。如果许多花哨的高级小部件对您比本地外观的GUI更重要,那么我不是非常熟悉可能存在的其他选项。祝你好运! - emk

1
写新程序最容易的方法就是使用你最熟悉的语言。 最容易使用、测试或分发的语言可能是最跨平台、最广泛分布或最受支持的,因此选择GTK+/wx/Qt/Tk这些。
需要注意的是,C本身并不是一种特别“容易”的语言,尤其是随着GUI向面向对象的发展趋势。
在脚本语言中创建原型,然后转换为编译语言的最简单工具包可能是任何带有脚本语言绑定(pyGTK, wxPython等)的工具包。
话虽如此,大部分主流工具包中只有GTK+和Tk支持C绑定,wxWidgets、Qt和FLTK都是用C++编写的,据我所知没有C绑定。
我建议你学习C++,然后比较可用选项。用C++编码可能会感觉像使用脚本语言编码,具有自动指针、实用程序类和重载运算符、无侵入式垃圾回收器以及易于继承的父类等方便特性,都能轻松掌握,而且搭配上你的小部件工具包也更加得心应手。
那么我的个人建议是使用wxWidgets; 这个工具包非常容易使用,比GTKmm文档更加详细,也比Qt更“自由”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接