【问题标题】:QT vs wxWidgets [closed]QT vs wxWidgets [关闭]
【发布时间】:2013-10-21 13:54:33
【问题描述】:

这个问题之前有人问过,但最近的一个好像是两年前的问题,所以这两个工具包肯定有新的发展。

那么我应该使用哪个工具包来使用 C++ 开发 GUI? 各有什么优缺点?

【问题讨论】:

  • 这真的取决于你的项目是开源的还是闭源的。这两个工具包都适用于开源项目。对于闭源,QT 有所有类型的限制和功能限制。他们每月收取 350 美元的许可证费用。 wxWidgets 对所有人免费,无论是商业的还是专有的。
  • wxWidgets - 良好的社区,完善的文档,免费商业许可
  • 将此问题视为“基于意见”和“只是口味问题”是不正确的。有充分的理由更喜欢其中一个。 API 的完整性和彻底性如何?它是否实现了对您的应用程序至关重要的晦涩或神秘的 API?例如:Win32 BeginPath/EndPath/FlattenPath。来自测试过一个或两个框架的有经验的用户的反馈很有价值,因为它可以节省数周的评估时间。我正在使用 Qt,看起来很彻底,文档很好。 wxWidgets 似乎更轻量级。但我很想听听谁都尝试过。

标签: c++ qt user-interface wxwidgets


【解决方案1】:

如果您将 wxWidgets 与 Qt 进行比较,wxWidgets 确实没有任何意义。 Qt 是一个完整的框架,您可以在其中为 Linux、Windows、MAC、Android、IOS 甚至黑莓等嵌入式系统编写代码并生成 GUI。它几乎可以完成任何您想做的事情,从控制网络摄像头到蓝牙设备等。 除非您正在做一些非常具体的事情,否则您不需要任何 3rd 方库。

另一方面,wxWidgets 本质上提供了一种创建 GUI 的方法,还有许多其他类,但与 Qt 相比它们很少。

【讨论】:

  • 当然您可以使用 Code::Blocks 或 CodeLite 来编写代码并为 wxWidgets 生成 GUI。而且您可以构建商业应用程序而无需支付 350 美元/月的 Qt 许可费。
  • @TomDworzanski 您可以在 Qt 中构建商业应用程序而无需支付一分钱,LGPL 只要求您动态链接到 Qt 库。您也可以静态链接,但在这种情况下您需要提供目标文件。
  • wxDevC++ 为 C++ wxwidgets 提供了一个完整的可视化 IDE。 Boaconstructor 为 wxpython 提供了一个完整的可视化 IDE。
  • 是的,QT 有一些在目标操作系统中找不到的小部件,这是 QT 的目标,另一方面 wxWidgets 提供所有本机操作系统小部件,如果您需要一个不可用的小部件在目标操作系统中,您可以在 wxWidgets 之上实现它,然后您的小部件将是跨平台的(我之前已经为一组花哨的控件做过它,并且不太难)。
  • @KeepMove 你没有静态链接 Qt 库那么你不需要购买它
【解决方案2】:

在我明显偏颇的看法中,wxWidgets 的优点是:

  • 原生小部件(尽可能)保证原生外观感觉
  • 仅标准 C++,无特殊预处理器/扩展
  • 无需购买商业许可即可静态链接到闭源应用程序

此外,优势还是劣势由您决定,但 wxWidgets 主要是一个 GUI 库,旨在与其他专业库(如 SOCI 或 asio,分别用于数据库和网络支持)很好地配合使用而不是试图成为唯一真正的图书馆。

【讨论】:

  • 在 LGPL 许可下,Qt 还可以在不购买商业许可的情况下进行静态链接。然而,与 wxWidgets 的许可证不同,LGPL 要求至少将潜在/可能专有代码的目标文件(如果不是源文件)连同库源代码(在本例中为 Qt 源代码)一起提供给最终用户代码)。
  • 我认为不是这样:wxWidgets 许可证:docs.wxwidgets.org/3.0/page_copyright_wxlicense.html,QT 许可证:qt.io/licensing-comparison
  • 是的,我没有注意到@nairware 的评论,但是关于wxWidgets 是绝对错误的,wxWidgets 许可证中的例外明确允许静态链接。理论上,如果您提供用于重新链接的目标文件,LGPL 也允许这样做,但我从未见过有人在实践中费心去做。
  • @nairware "Qt 还可以在不购买商业许可证的情况下进行静态链接。"如果根据 LGPL 静态链接 Qt,则需要提供所有目标文件,对吗?这意味着没有人会这样做。
猜你喜欢
  • 2010-09-23
  • 2014-06-08
  • 2010-10-20
  • 2014-05-19
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 2014-10-22
  • 2010-09-14
相关资源
最近更新 更多