Qt替代?

时间:2011-08-03 23:33:27

标签: c++ qt user-interface

我最近发现,Qt的未来已经变得不确定,因为它的现任所有者诺基亚宣布他们正式对桌面Qt没有兴趣。

我知道Qt可以通过几个不同的事件生存,但是我担心在OS支持方面学习一个垂死的框架,所以我想学习另一个像Qt一样的跨平台应用程序框架。

它需要是跨平台的,并且包含许多类,如用于开发的Qt以及可靠的GUI库。我希望它非常稳定并得到操作系统和IDE的良好支持

WxWidgets已经在win32上对自己进行了大量建模并且非常不直观,并且窗口布局非常不稳定

Gtkmm模型很像包装器,就像Gtk一样,它的文档是一些不存在的。它也有很少的应用程序类,所以我不得不四处寻找其他跨平台库。它的信号槽实现与Qt的简易性和简单性无法匹配,Qt的线程支持令人惊叹。

我唯一担心的是,如果没有公司或大型社区接受Qt,它将慢慢失去对Windows,新Linux内核,Xorg版本,mac更新的兼容性......我不愿意看到这种情况发生,因为Qt是一个了不起的框架

6 个答案:

答案 0 :(得分:35)

Qt的未来非常不确定。 Qt的许可证有一个条款明确规定如果在任何时候它不再提供,那么它就成了公共领域。在这一点上,我会想象KDE人员会接管开发(因为他们之前考虑过将kdelibs与Qt合并至少一点)。

另外,有一家公司(Digia?)目前仍在提供Qt商业许可证。

最后,Qt5 is actively in development by Nokia,我看不出它甚至接近“死亡”,简单地说,你被误导了。

答案 1 :(得分:3)

我不确定是否真的很担心Qt是否会失效。它是同类中最受欢迎的跨平台库之一(如果不是 ),并且仍然有很强的支持。

无论如何,您关于其他系统的问题仍然存在。这是我的两个最爱:

  1. 切换到跨平台语言,并为您提供所需的标准支持,例如Java。

  2. 使用具有此类标准库的跨平台语言编写应用程序脚本以构建应用程序的这些部分,同时仍然使用C ++代码完成其余工作。

  3. 它们的选择非常相似,第二种选择则不那么引人注目。特别是考虑到问题是出于对图书馆生存问题的关注,我宁愿选择高度流行和成熟的语言来维持支持。当然,语言中可能有很多选择,但我最熟悉的是Java,这就是我之前提到过的原因。编写Java代码以与C ++代码进行互操作并不是太糟糕,并且还提供了一个很好的例子,说明如何在应用程序中使用多种语言是有利的。

答案 2 :(得分:2)

Qt的未来永远不确定。那个说“对桌面不感兴趣”的人不是主人。 Qt的未来在2011年2月(WP7合作公告)之后得到了很好的提及。事实上,QML是未来用户界面的好方法。

为了您的证明,新的Unity界面Ubuntu将具有2D QML界面,未来的版本将为某些应用程序提供QML 3D界面。新的Ubuntu与Qt高度集成。

到目前为止,Qt的发展方式太好了。作为Qt博客和实验室的常客,我可以肯定地说。新的Qt 5将具有很多功能和性能改进。此外,他们还致力于开发成功的开放式治理模式。所以,每个人都可以做出贡献。

由于开发的未来将用于手机和平板电脑,你会发现的大多数教程似乎都会产生幻觉,Qt不支持桌面,但事实并非如此。

下载最新的Qt SDK 1.3,你会发现Qt 4.7.4 for Desktop。

为了简化Qt的使用,为了开发移动和桌面应用程序,诺基亚将这两种开发环境合并到一个名为Qt SDK的SDK中,与以前的诺基亚Qt SDK不同。

此外,我认为没有其他C ++开发框架可以支持Qt现在支持的各种平台。

我支持:   - 桌面操作系统:Windows,Linux,Mac OSx。   - 移动操作系统:Symbian,Android(社区支持),IOS(社区    支持),Windows CE,   - 嵌入式Linux设备,Meego,Maemo。平板电脑操作系统:Android,Meego,    平板电脑Linux端口。

移植它的新机会以Qt Necessitas的名义提供 - Qt的Android端口和IOS端口仅基于此。如果您有疑问,请检查YouTube上的视频。

关于Java,我已经读过它不像Qt那样跨平台。我也怀疑除Qt之外的任何IDE是否可以为您提供交叉编译的舒适感。

文档非常好,在极少数情况下,不支持跨平台(对于某些Window函数)以及在该特定操作系统中实现它的替代方法。

QML很棒,因为它背后的场景动作是使用C ++执行的,以提供类似的性能(比Qt C ++快85%)。并且您没有内存管理的头痛(如果您不习惯使用C ++)。如果你真的想要一个漂亮的GUI和快速的性能去QML和C ++ ..其他简单的选择是使用QML和Javascript。

我正在开发一个Symbian应用程序,在我的诺基亚E63中使用重型动画,CPU时钟速度为(386 MHz),QML性能更平滑,根本不会挂起。

您甚至可以使用if else语句找到操作系统和版本,这很容易。试一试之前先试一试。

答案 3 :(得分:1)

答案 4 :(得分:1)

Fox toolkit,一个跨平台的GUI C ++工具包。我最近发现了它,并将很快为我们的软件进行评估。从文档来看,它看起来很简单,但我实际上并没有在其中开发任何东西(还有。)

来自网站:

  

FOX代表Free Objects for X.它是一个基于C ++的类库   构建图形用户界面...使用FOX的应用程序不直接依赖于X-Windows。由于FOX系统完全隐藏了所有平台依赖关系(应用程序甚至不包含X-Windows头文件!!),只需重新编译,这些应用程序就可以轻松移植到其他平台。

答案 5 :(得分:1)

Qt许可是不公平的。他们要求单座开发商支付10座开发商支付的许可成本的1/10,即使单座开发商的市场份额小100倍,10座开发商总是隐藏座位数。

其他“免费”许可证只是为了吸引你在他们的系统中投入时间。后来,当你想要赚钱时,你必须支付他们疯狂的高额许可成本,以便及时从你的投资中获得一些东西。