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


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

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

我们感兴趣的特点是:

  • 无框窗户

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

  • 美观

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

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

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


2872
2018-02-10 03:01


起源



答案:


我同意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应用程序还是商业许可的应用程序。

祝你好运。


8
2018-02-10 04:47



他们已经将Qt与LGPL一起发货,所以这不再是一个问题了。谢谢你的好评。 :) - Adeel Ansari
@Vinegar:啊,感谢关于Qt和LGPL的信息。我通常使用Gnome,而不是KDE,因此我不关注Qt的开发。 - Eddie
啊......很公平。 - Adeel Ansari


答案:


我同意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应用程序还是商业许可的应用程序。

祝你好运。


8
2018-02-10 04:47



他们已经将Qt与LGPL一起发货,所以这不再是一个问题了。谢谢你的好评。 :) - Adeel Ansari
@Vinegar:啊,感谢关于Qt和LGPL的信息。我通常使用Gnome,而不是KDE,因此我不关注Qt的开发。 - Eddie
啊......很公平。 - Adeel Ansari


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

问候。

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

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

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


4
2018-02-10 15:55



没有Zax,请看我对Eddie的评论。它已经发布给LGPL,所以问题已不复存在。 (没有反对票) - Adeel Ansari


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

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


4
2018-03-13 17:25



这似乎是不正确的,因为QT Jambi网站在2015年显示了4.8.6版本。 - Valkryst


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


0
2017-10-14 18:27





我不推荐SWT。 SWT是一个设计糟糕的图书馆,有很多黑客和漏洞。您将整个时间寻找简单UI任务的变通方法


-1
2018-02-17 10:16



你的答案描述了SWT,IBM(现在的eclipse)开发了一些无用的东西。 - Extreme Coders


经过多年,令我感到惊讶的是,java开发人员仍在搜索gui编程工具,在我的案例中,swing是继续缓慢,对大项目不好。我们可以看到很多项目这样的openoffice从sun开始,使用c ++小部件来gui编程,我曾经在一些项目中摇摆不定,但客户多次向我询问性能变化。 Qt也不是活跃的程序员和支持,我曾经测试javafx但仍然看到性能问题,你可以从oracle站点下载示例javafx,与原生c ++ gui相比,改变gui页面需要很长时间。


-1
2017-09-29 15:55