Qt Jambi vs SWT用于跨平台GUI开发

时间:2009-02-10 03:01:45

标签: java user-interface cross-platform swt jambi

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

由于各种遗留原因,我们无法使用Java。我们正在决定使用Qt Jambi和SWT进行GUI。我没有太多使用它们的经验所以我正在做一些小型原型试图让它们感觉到。到目前为止(仅在Linux上开发)它们之间没有太大区别。但是,我可以在短时间内进行深度限制。这就是我寻求帮助的原因。

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

  • 无框窗户

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

  • 美观

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

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

2月11日更新:感谢您的回答。对于那些好奇的人,我们可能会选择Jambi。主要是样式表功能赢得了我,因为它们使我们需要做的很多自定义小部件形状变得容易。 Qt套件的例子表明,无框架,定制形状的窗口确实可以在不同的平台上工作,所以我们不应该被追踪到轨道上。 LGPL发布是我们考虑Jambi的原因:)

5 个答案:

答案 0 :(得分:8)

我同意Vinegar:不排除Swing。我用Swing和SWT开发了,但不是用Qt开发的。使用Swing,您的代码将自动跨平台。使用SWT,您的代码可以通过一点点努力实现跨平台,尽管没有那么多努力。您打算实现本地应用程序,Applet还是Web Start应用程序?

SWT的优势在于它使用所有本机小部件。 (熟悉的Look-and-feel。)SWT的缺点是它使用所有本机小部件。 (没有像Swing那样多的小部件)这是一个优势还是劣势取决于你在做什么以及你的目标是什么。这意味着Swing拥有更广泛的小部件。但是,SwT做了一些事情,Swing做得不好(或根本没有) - 例如启动系统的本机浏览器并在此浏览器中执行JavaScript脚本。

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

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

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

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

祝你好运。

答案 1 :(得分:4)

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

问候。

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

@cursa没有说,所以还要注意Qt / Jambi不仅仅是widget工具包。你有网络类,字符串操作(以及regexp引擎),互斥,2d矢量&光栅图形,openGL等等。这为应用程序开发提供了真正的推动。

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

答案 2 :(得分:4)

你知道Qt Jambi在本月发布的4.5版本后停产了吗?这并不是一个糟糕的选择。 Qt还拥有其他社区维护的语言绑定,这些绑定在Trolltech的控制之外。

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

我不推荐SWT。 SWT是一个设计糟糕的库,有很多黑客和bug。您将整个时间寻找简单UI任务的解决方法