12

我目前参与了一个主要为 Linux (Fedora 10) 开发应用程序的项目。但是,以后可能会出现这种情况,我们将不得不将这些应用程序移植到 Mac OS X 和 Windows 上,而且我们不希望因选择错误的 GUI 工具包而陷入困境。*

由于各种遗留原因,我们被锁定在使用 Java 上。我们正在决定在 GUI 中使用 Qt Jambi 还是 SWT。我没有太多使用它们的经验,所以我正在做一些小型原型来尝试感受它们。到目前为止(只是在 Linux 上开发)它们之间没有太大区别。但是,我能在短时间内走的深度是有限度的。这就是我寻求帮助的原因。

我们感兴趣的特殊功能是:

  • 无框窗户

  • 自定义形状的窗口(即不是矩形)

  • 美观

有没有人对这两个库有任何经验和/或见解可能会在以后绊倒我们?

  • 敏捷编程人员无疑会跳上“可能……以后”这句话,并说我们不应该担心它。但是,在工具包之间没有其他决定因素的情况下,未来的可扩展性选项会起作用。我保证在需要之前不会编写任何跨平台特定代码:)

2 月 11 日更新:感谢您的精彩回答。对于那些好奇的人,我们可能会选择占碑。赢得我的主要是样式表功能,因为它们使我们需要做的许多自定义小部件形状变得容易。Qt 示例套件表明,无框、自定义形状的窗口确实可以在不同的平台上工作,所以我们不应该被抓到。LGPL 版本是我们考​​虑 Jambi 的原因 :)

4

5 回答 5

9

我同意 Vinegar 的观点:不排除 Swing。我已经使用 Swing 和 SWT 进行了开发,但没有使用 Qt。使用 Swing,您的代码将自动跨平台。使用 SWT,您的代码是跨平台的,虽然没有那么大的努力,但需要一点努力。您打算实现本地应用程序、Applet 还是 Web Start 应用程序?

SWT 的优点是它使用所有本机小部件。(熟悉的外观。) SWT 的缺点是它使用所有本机小部件。(没有 Swing 那么多的小部件)这更多的是优势还是劣势取决于您在做什么以及您的目标是什么。这意味着 Swing 具有更广泛的小部件。然而,SWT 做的一些事情 Swing 做得不好(或根本不做)——例如启动系统的本机浏览器并在此浏览器中执行 JavaScript 脚本。

如果您考虑 SWT,请仔细考虑。如果您有某些需求(例如在应用程序启动的浏览器窗口中执行 JavaScript),那么它可能是您的最佳选择。但是,如果 Swing 能够完全满足您的需求,它可能是一个更好的选择。

希望其他人可以提供有关 Qt Jambi 的信息。

请注意,支持应该是您做出决定的考虑因素。使用 SWT,有一个较小的社区支持它。Swing 是一个更大的社区,但这并不意味着修复会更快地进入开发版本。使用 Qt Jambi 和 SWT,如果修复了错误,您只需将更新的库与您的应用程序一起分发。使用 Swing,您必须等待更新的 JRE。两者都不一定会破坏交易,但必须加以考虑。

许可费可能是也可能不是考虑因素。当然,SWT 和 Swing 没有许可费 Jambi 我不知道这两种方式,但这可能取决于您的预期用途——例如,您是分发 GPL 应用程序,还是商业许可的应用程序。

祝你好运。

于 2009-02-10T04:47:08.393 回答
4

我没有使用 SWT 的经验,但我也在使用 Jambi/Qt、Swing 和 GTK。我认为 Qt/Jambi 的唯一问题是许可(您必须在 GPL 下发布您的软件或购买商业许可)。您不能开始免费编写软件,然后“看看会发生什么”。您必须确保您的软件会成功,因为您必须购买许可证。这在很多时候并非如此。

问候。

哎呀,我忽略了那些评论,谢谢你的回复。这是个好消息!诺基亚的好举措。

@cursa 没有说,所以还要注意 Qt/Jambi 不仅仅是小部件工具包。您有用于网络、字符串操作(以及正则表达式引擎)、互斥体、2d 矢量和光栅图形、openGL 等的类。这为应用程序开发提供了真正的推动力。

我还建议将 Qt 包下载到 Jambi noobies,因为 Jambi 缺少非常好的帮助浏览器,称为 Assistant。Qt 和 Jambi 的所有 API 都是相同的(除了槽和信号),甚至文档都没有改变,因此您可以互换使用它。

于 2009-02-10T15:55:14.007 回答
4

您知道 Qt Jambi 在本月 4.5 版本发布后停产了吗?这并不是一个糟糕的选择。Qt 有其他社区维护的语言绑定,它们不在奇趣科技的控制范围内。

http://www.qtsoftware.com/about/news/preview-of-final-qt-jambi-release-available

于 2009-03-13T17:25:09.920 回答
0

我不会排除 SWT,因为它在日食世界中取得了巨大的成功。我已经愉快地使用它大约 6 年了,从来没有求助于摇摆。

于 2009-10-14T18:27:36.100 回答
-1

我不会推荐 SWT。SWT 是一个设计糟糕的库,有很多 hack 和 bug。您将一直在寻找简单 UI 任务的解决方法

于 2009-02-17T10:16:09.070 回答