使用QT C ++编写跨平台手机应用程序的现实

我正在尝试继续开发智能手机应用程序(我有一点Android的经验)。 我已经做了一些深入的研究,并决定开始在Qt C ++中创build应用程序。

我这样做的原因是因为从我的研究中,似乎我可以在Qt中编写一个应用程序,然后我只需要在iPhone,Android,Symbian和Windows Mobile上编译它,然后我将有一个可以工作的应用程序在所有这些平台上。

我的问题是:我是否正确,如果我在Qt C ++中编写应用程序,那么它将在以下平台上工作:Android,iPhone,Symbian和Windows Mobile?

我知道这是一个天真的问题(“我可以使用什么API来在所有平台上工作”),但我已经研究了很多,他们似乎都说Qt可以在所有这些平台上工作。

PS,使用Qt写一个跨平台的手机应用程序有没有什么缺点? 编译Qt应用程序代码难以在每个平台上完成吗?

Solutions Collecting From Web of "使用QT C ++编写跨平台手机应用程序的现实"

这个问题很久以前就问过了,很多事情自此以后就改变了。 对于那些今天(2014年初)他们自问相同的问题,那么我个人的答案是,Qt在iPhone上工作99%。

目前我正在开发一个使用QSensors,QNetworkAccessManager和OpenGL ES的应用程序,我在OSX,iOS,Windows和Linux上没有遇到任何问题。 考虑到即将移植到Android。

我遇到的唯一问题是QtPositioning(GPS)模块,目前还不支持iOS,但是解决方法非常简单,我不认为这是个问题。 今年晚些时候它可能会工作。 也由于一些iOS限制,QtWebKit不可用。 其余的作品就像一个魅力! 完成了很多工作。

我没有在Android上testing自己,但从我读的Qt也应该在这方面的工作。

你可以使用Qt C ++(最近用QML)来开发手机。

我的问题是:我是否正确,如果我在QT C ++中编写应用程序,那么它将在以下平台上工作:Android,iPhone,Symbian和Windows Mobile?

是的,它在Android,Symbian,Windows Mobile,Meego,Maemo,Moblin上运行良好。

我是一个Qt开发人员,我用它来开发Symbian,Meego,Maemo和Android。 由于Symbian,Meego,Maemo得到官方支持,他们在这些平台上完美工作了99.99%。

但在Android中,95%的工作效率,但你需要很less的锻炼。据我所知,Android上不支持QtMultimedia Kit(有些path可用)。 但是Android端口贡献者Bog已经表示,他们也会尽快移植它。 Qt背后有一个很大的社区,还有Android的Qt。 您也可以在Symbian和Meego中使用Mobility API。 Qt移动应用已经在Android市场上发布了,没有任何问题。

对于Windows Mobile来说,它正式提到,即使Qt Mobility也可以使用该手机,并支持纯粹的Qt C ++代码。 但是我不认为太多的用户现在会使用Windows Mobile,因为Windows Phone 7(不支持Qt)是最近的一个话题。

关于iPhone端口,是的,社区有实验端口。 我想,很快就会有一些例子。 我看过一些Youtubevideo,演示了在iPhone上使用Qt和Qt Mobility的情况。

最近RIM已经表示,他们的BBQ(黑莓平板电脑操作系统)平台将有Qt的官方端口。

关于任何Linux Mobile(Moblin,Maemo等),是的Qt C ++完全适用于他们。

关于桌面,Qt C ++ / QML几乎在所有桌面平台上运行。

我不明白像CommonsWare那样有145k代表的人刚刚出来,说像Qt将不能在任何移动平台上工作。 但正如他所说,如果你要select一个像PhoneGap这样的基于HTML的API,那么我会推荐Qt 100倍以上。 因为Qt可以在所有方面比HTML5做得更好。 它可以比HTML5更好,更高效地处理一些像3D,openGL等一些问题。

读完所有上述答案后,我不好意思地说,你最好不要相信这些答案,并join这个地方Qt实验室 ,你会看到和享受Qt的真正力量。

最近Qt已经开放治理,每个Qt模块都将根据公共利益进行开发和维护。 进一步的奇趣科技,KDE和诺基亚正在开发它出于商业原因。 所以永远不要因为一些不好的build议而失去Qt,自己尝试一下,然后自己决定。

iOS和Android的支持是实验性的,不幸的是, 而诺基亚只支持更新版本的Symbian。 所以Qt是只在桌面上的跨平台,在这里它真的很好—-> Linux,Windows,* BSD,MacOSX,OS / 2,Amiga OS4 ….

诺基亚开始build立Windows手机是一个耻辱。 如果他们坚持meemo和symbian至lessQt会积极发展。

我不相信Qt会为你描述的目的而工作。 不幸的是,我不认为别的什么都可以。 Android基本上只是支持Java。 NDK可以让你用C ++编写应用程序的一部分,但是仍然需要Java的部分。

新版本的Windows Mobile只支持.NET应用程序(我相当确定没有其他手机支持.NET应用程序…)

这不完全正确。 如果给定的特性具有平台特定的特性,那么必须在.pro文件中将这样的构造包含在平台名称的大括号内。

例如,对于symbian:

symbian { SOURCES += symbian_file_handler.cpp LIBS += -llibcryto } 

Qt框架的大部分已经得到了所有人的支持,如果不是全部,那么很快就会出现。 另外,Qt不仅在框架上,而且在支持和用户方面也在增长。

你会发现唯一的困难是当你需要使用和外部库在所有平台上运行。 例如,我正在使用ffmpeg,我的'.pro'文件目前只是为Windows和Android设置的,但是它可以工作。

编译每个平台的Qt代码是一个轻而易举的事情。 设置外部库是件烦人的事情。