【问题标题】:A good (and free) VCL GUI alternative一个好的(和免费的)VCL GUI 替代品
【发布时间】:2010-10-23 10:27:29
【问题描述】:

我有一个项目,其 VCL 代码库建立在 Borland C++ Builder 6 之上。我打算重写它的大部分内容,因为它在当前状态下几乎无法维护。我正在寻找一个好的和免费的 VCL 替代品。这是一个仅限 Windows 的闭源商业项目。

所以主要要求是:

  1. 商业闭源项目免费
  2. 管理 Windows GUI。不需要其他组件(数据库链接和东西)
  3. 可扩展(因此可以基于现有的 GUI 组件编写我自己的 GUI 组件)
  4. 对 STL 友好。

如果可能,请发表您的建议,并说明利弊。

编辑

感谢所有答案。我决定使用 Qt,因为它还有一些其他不错的功能,例如 Qt Linguist 翻译套件。

【问题讨论】:

标签: c++ windows user-interface c++builder vcl


【解决方案1】:

查看wxWidgets。它的设计有点过时,但是当您开始使用它并使用最新版本时,它应该对 STL 非常友好。它可免费用于商业用途,即使您不打算使用其跨平台功能,它也可能是您编写 Windows GUI 的好库。

【讨论】:

  • 我已经尝试了一段时间 Qt - 它与 Eclipse-CDT 很好地集成。 wxWidgets有类似的工具/插件吗?
  • wxwidgets 的一个优点是您可以静态链接您的应用程序。这允许拥有更小的(exe + dll)应用程序。例如,我有一个 wxWidget 程序,它只需要 2Mo,而您必须与程序一起分发的“QtGui4.dll”需要超过 11Mo。
  • @frgtn:我不了解 Eclipse,因此无法对此发表评论。有一些用于创建对话框的工具,包括商业的和免费的,还有专门针对 wxWidgets 项目的 IDE。您可以在 wxWidgets 网站上找到链接。对不起,不能更具体,因为我不知道你寻求什么样的整合。但是在 wxWiki 中搜索 Eclipse 可能会有所帮助。
【解决方案2】:

试试Qt。它的 LGPL 因此它可以用于闭源软件。它提供小部件、网络功能、数据库访问、通过 WebKit 的 Web 渲染、动画等等。它的文档是同类中最好的之一。

【讨论】:

  • 我考虑过 Qt,但不明白什么时候我必须申请商业许可证,什么时候我的项目可以使用 LGPL 许可证。我很可能不得不基于 Qt 创建自定义小部件,如果我仍然可以使用 LGPL 版本,这让我有点困惑。
  • 如果你想静态链接到 Qt 或者你修改 Qt 本身,那么你只会使用商业广告,而这永远不会发生。所以 LGPL 是一个安全的选择。
  • 我不确定是否有可以使用 bcb6 编译的 Qt 版本。这可能会被证明是一项令人沮丧的努力。
  • Its documentation is one of the best of its kind. -- 是的。还应该提到的是,如果您打算将其用于商业项目,它的licence 是同类中最令人困惑的之一。 ;)
【解决方案3】:

您可以使用QTwxwidgets

【讨论】:

  • 你也可以使用 gtk , www.gtk.org
【解决方案4】:

正如mghie所指出的那样

wxWidgets 是一个很棒的库。它有很多绑定(.net、lua-我最喜欢的等),它有 gui 编辑器。虽然它会生成相当晦涩的代码,但您可以找到简单的拆分 ui\it 的功能。

【讨论】:

    【解决方案5】:

    您需要的可能是免费版本的 BCB:Turbo C++ Explorer,或尝试 .NET CLR / WinForms。

    WxWidgets 只是一个 GUI 库。 Qt 是一个平台,但与 VCL 之类的 RAD 框架相去甚远。唯一的竞争者是 MFC,不幸的是它不是免费的。从某种角度来看,.NET+CLR 是 VCL 的继承者——好吧,也许你也可以试试——如果你不介意它需要庞大的 .NET 框架。

    如果您只想要一个“好的和免费的解决方案”并且不介意坚持使用 VCL,请使用 TC++Exp。

    【讨论】:

    • 抱歉,正如问题明确指出的那样,这是 VCL 的替代方案吗?
    • 生活在现实世界中的人应该知道切换框架是多么昂贵,这就是为什么我建议使用相同框架的免费版本。也许该项目一开始似乎只需要一个 GUI 库,但由于前一个是 RAD,因此很有可能最终您会找到您需要的东西,因为替代品远不止 GUI 库。我见过太多次人们低估了放弃 MFC 的努力,这就是我提出建议的原因
    • 对不起,我不是故意的。但我是为了回答这个问题。当然应该知道切换 GUI 库或框架的成本。希望数学已经完成了;使用很少使用的(在 C++ 中)GUI 库也可能非常昂贵。无论如何,真正让我受益的是 .NET 的提示——从 VCL 切换到更便宜的方式是什么?特别是因为 C++ 不会是那里的首选,所以这可能也是一种语言切换?
    • 顺便说一句:wxWidgets 不仅仅是一个 GUI 库,还有很多低级的东西,可用于命令行应用程序。文件系统访问、多线程、容器类等等。但是对于大部分情况,使用 STL 或 boost 库可能会好得多。
    • 其他人也建议使用 C++ Builder 2009!你为什么不去责备他?为什么 .NET 也不是解决方案?您仍然可以使用 C++。我包含它是因为它具有最大的覆盖范围,并且您可以通过 VC Express 免费使用它(尽管它不是开源的)。
    【解决方案6】:

    你可能想看看Qt Project

    【讨论】:

      猜你喜欢
      • 2011-12-25
      • 2010-12-01
      • 2010-11-08
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多