什么是简单、可测试、跨平台的C++ GUI?

3
我想为一个C++应用程序构建一个非常简单的GUI。华丽的设计和高级功能并不重要。然而,重要的是我可以编写自动化测试来检查字段内容和点击按钮。它还需要至少在Linux和Windows上运行,最好也能在Mac上运行。有什么建议吗?
编辑:强烈推荐使用开源工具。
5个回答

5

抱歉我回答晚了一些。

好吧,在GUI编程方面有很多选择。然而,既然你说你想要简单的东西而没有花哨的效果,那么选择就会少一点。这是我的建议:

QT

非常棒。不想听起来像是Nokia(或Trolltech)的鼓吹者,但这个框架拥有所有你需要的东西。成熟的API、良好的设计、平台无关性、灵活性等等!但是简单吗?嗯...这不是它的强项,事实上,QT正好相反。它倾向于更加笨重和武装到牙齿,绝对不简单。

GTK+

同样很酷。支持的平台比QT少,但有一个相当成熟的API,在你提到的所有平台上都能工作,设计也非常棒。灵活性呢?新的GTK+ 3非常灵活,但是GTK+ 2(Windows的当前最新支持版本)在这方面稍微有点欠缺。它比QT简单,没有太多花哨的效果等等。但是它依赖于大量的第三方库,这对某些平台来说有点不利。

关于上面两者的比较,请参见我的以前的回答之一

FLTK

坦率地说,在我看来,这个工具包最适合你的需求。它简单、平台无关、非常容易部署和交叉编译,并且相当成熟(尽管其社区活跃度不如GTK+和QT)。它基于OpenGL,并且在所有平台上看起来非常相似(我不知道在这种情况下这是优点还是缺点)。它有一个相当宽松的许可证,你可以静态链接整个库,除了OpenGL没有其他依赖项。运行在OpenGL支持的所有平台上。


我想为一个C++应用程序构建一个非常简单的GUI。花哨、设计和高级功能并不重要。然而,重要的是我能够编写自动化测试来检查字段内容和点击按钮。它还需要在Linux和Windows上运行,最好还能在Mac上运行。

总的来说,根据你提到的要求,我认为FLTK非常适合你。不过如果你不满意的话,也应该看看其他两个工具包。

更新:

测试框架:

很遗憾,我还没有看到任何适用于FLTK的优秀测试框架。对于QT,有QTestLib;对于GTK,有dogtail


FLTK看起来不错,我喜欢能够静态链接整个库的能力。但是你知道是否有可用的测试框架吗?我的主要需求是能够通过GUI执行自动化端到端测试,模拟用户点击按钮,验证标签内容等。 - knatten

3
建议您如上所述使用Qt。它已经成熟,还有新功能正在添加。要测试使用Qt编写的应用程序,您有以下选项:
  1. QtTestLib
  2. Squish

还有一些关于Qt的更多想法on QtCentre

更新:由于pyqt中支持Python和Qt,因此使用类似pyunit的东西创建测试套件将是一个不错的选择。

我不知道其他库的支持水平,但是wxwindows和GTk是很好的竞争者。


2


0

您可以尝试使用 fltk,它是跨平台和轻量级的。另外一个选择是 qt。


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