热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用QTc++编写跨平台手机应用的现实-RealitiesofusingQTC++towriteacrossplatformphoneapp

IamattemptingtocontinuedevelopingapplicationsforSmartPhones(Ihavealittleexperiencewit

I am attempting to continue developing applications for Smart Phones (I have a little experience with Android). I have done some deep research & I have decided to start creating applications in Qt C++.

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

The reason I am doing this is because from my research it seems that I can write an application once in Qt then all I have to do is compile it on IPhone, Android, Symbian & Windows Mobile and then I will have an application that will work on ALL these platforms.

我这样做的原因是来自我的研究看来,我可以编写一个应用程序一次在Qt那么所有我需要做的就是编译IPhone,Android,Symbian和Windows Mobile然后我将有一个应用程序,该应用程序将在这些平台上工作。

My question is: Am I correct that if I write an app in Qt C++ then it will work on the following platforms: Android, IPhone, Symbian & Windows Mobile?

我的问题是:如果我用Qt c++编写一个应用程序,那么它将在以下平台上运行:Android、IPhone、Symbian和Windows Mobile,我是对的吗?

I know that this is kindof a naive question ("What API can I use to work on all platforms") but I have researched alot & they all seem to say Qt can work on all these platforms.

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

PS, Are there any cons to using Qt to write a cross platform Phone App? Is compiling Qt application code difficult to do on each platform?

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

6 个解决方案

#1


10  

This question was asked a long time ago and many things have changed since. For those asking themselves the same question today (beginnings of 2014) then my personal answer is that Qt works 99% on iPhone.

这个问题是很久以前提出的,从那时起,很多事情都发生了变化。对于那些今天(2014年初)问自己同样问题的人,我个人的回答是Qt在iPhone上工作99%。

Currently I'm developing an application that uses QSensors, QNetworkAccessManager and OpenGL ES and I have not encountered any problems on OSX, iOS, Windows and Linux. Thinking about porting to Android soon.

目前,我正在开发一个应用程序,它使用q传感器、QNetworkAccessManager和OpenGL ES,而且我还没有遇到OSX、iOS、Windows和Linux上的任何问题。考虑一下移植到Android。

The only problem I met was the QtPositioning (GPS) module that is not yet supported for iOS but the workaround is very easy and I wouldn't consider this a problem. It will probably work later this year. Also due to some iOS limitations, the QtWebKit is not available. The rest works like a charm! Great job done.

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

I have not tested myself on Android but from what I read Qt should also work on that.

我还没有在Android上测试过我自己,但是从我所读到的Qt中,我也应该研究一下这个问题。

#2


7  

You are good to go with Qt C++ (and most recently with QML) for mobile phone development.

您可以使用Qt c++(以及最近使用QML)进行移动电话开发。

My question is: Am I correct that if I write an app in QT C++ then it will work on the following platforms: Android, IPhone, Symbian & Windows Mobile?

我的问题是:如果我用QT c++编写一个应用程序,那么它将在以下平台上运行:Android、IPhone、Symbian和Windows Mobile,我是对的吗?

Yes it works fine on Android, Symbian, Windows Mobile, Meego, Maemo, Moblin.

是的,它适用于Android, Symbian, Windows Mobile, Meego, Maemo, Moblin。

I'm a Qt developer and I have used it to develop for Symbian, Meego, Maemo and Android. Since Symbian, Meego, Maemo are officially supported they work 99.99% perfectly on these platforms.

我是一个Qt开发人员,我用它为Symbian、Meego、Maemo和Android开发。自从塞班、Meego、Maemo被官方支持以来,它们在这些平台上的表现达到了99.99%。

But in Android, it works 95% fine but you require very few workouts.As far as I know, the QtMultimedia Kit is not supported on Android (some pathces are available). But the Android port contributor Bog has said that they will port it too as soon as possible. There is a big community behind Qt as well as Qt for Android. You can also use Mobility APIs as you use in Symbian and Meego. Qt mobile apps are already published in Android market without any problem.

但在安卓系统中,它的工作效率是95%,但你只需要很少的锻炼。据我所知,qt多媒体工具包不支持Android(一些路径是可用的)。但是Android端口贡献者Bog说他们会尽快移植它。Qt和Qt背后都有一个很大的社区支持Android。在Symbian和Meego中也可以使用移动性api。Qt移动应用已经在Android市场上发布,没有任何问题。

Regarding Windows Mobile, its officially mentioned that even Qt Mobility can be used with that phone and it supports pure Qt C++ code. But I dont think too many users will be using Windows Mobile now, as Windows Phone 7(not supported by Qt)is the latest talk.

关于Windows Mobile,它的官方说法是,甚至Qt移动都可以与该手机一起使用,它支持纯Qt c++代码。但我不认为现在会有太多用户使用Windows Mobile,因为最新的说法是Windows Phone 7(Qt不支持)。

Regarding iPhone port, yes there are experimental port by communities. Will be soon available with some examples, I think. I have seen some Youtube videos demonstrating Qt and Qt Mobility working on iPhone.

关于iPhone端口,是的,有按社区划分的实验端口。我想很快就会有一些例子。我在Youtube上看过一些视频,展示了iPhone上的Qt和Qt机动性。

Recently RIM has said that their BBQ (Blackberry Tablet OS) platform will have an official port for Qt.

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

Regarding any Linux Mobile(Moblin, Maemo, etc), yes Qt C++ works just perfectly on them.

对于任何Linux移动设备(Moblin、Maemo等),Qt c++都能完美地工作。

Regarding Desktop, Qt C++/QML runs almost on all Desktop platforms.

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

I don't understand that someone like CommonsWare with 145k reps, just came out and said literally like Qt will not work in any of the Mobile platforms. But as he said, if you are going to choose a HTML based API like PhoneGap, then I would recommend Qt 100 times over that. Because Qt can do better than HTML5 in all the ways. It can handle some comlpex problems like 3D, openGL etc much more better and efficiently than HTML5.

我不理解像CommonsWare这样拥有145k代表的人,只是出来说Qt不会在任何移动平台上工作。但是正如他所说,如果你要选择一个基于HTML的API,比如PhoneGap,那么我推荐Qt 100次。因为Qt在所有方面都比HTML5要好。它可以处理一些comlpex的问题,比如3D、openGL等,比HTML5更有效、更高效。

After reading all the above answers I'm dissappoint to say that you better not believe these answers and go join this place Qt Labs where you will see and enjoy the real power of Qt.

在阅读了以上所有答案后,我不同意你最好不要相信这些答案,加入这个地方Qt实验室,在那里你将看到并享受Qt的真正力量。

Recently Qt has gone open governance, where each Qt module will be developed and maintained according to public interest. Further Trolltech, KDE and Nokia are developing it for commercial reasons. So never ever lose Qt because of some bad advide, try it yourself and then decide it by yourself.

最近Qt已经开始开放治理,每个Qt模块将根据公众的兴趣开发和维护。此外,Trolltech、KDE和诺基亚出于商业原因正在开发这款手机。所以永远不要因为一些糟糕的建议而失去Qt,自己尝试一下,然后自己决定。

#3


5  

Support for iOS and Android is experimental, unfortunatelly. And Nokia supports only newer versions of Symbian. So Qt is cross-platform only on Desktop, and here it really works great ----> Linux, Windows, **BSD, MacOSX, OS/2, Amiga OS4 ....

不幸的是,对iOS和Android的支持是实验性的。诺基亚只支持更新的塞班系统。所以Qt跨平台只在桌面,这里真的是伟大的- - - - - > Linux,Windows,* * BSD,MacOSX,OS / 2,女性朋友同台可以....

Its a shame that Nokia started to build windows phones. If they sticked with meemo and symbian at least Qt would be actively developed.

诺基亚开始生产windows phone是件憾事。如果他们坚持使用meemo和symbian,至少Qt将被积极开发。

#4


1  

I don't believe Qt will work for the purpose you describe. Unfortunately, I don't think anything else will either. Android basically just supports Java. The NDK will let you write parts of an app in C++, but still requires Java for parts as well.

我不相信Qt会达到你描述的目的。不幸的是,我也不认为其他的事情会发生。Android基本上只支持Java。NDK允许您使用c++编写应用程序的部分,但仍然需要Java编写部分。

The new version of Windows Mobile only supports .NET applications (and I'm reasonably certain no other phone supports .NET applications at all...)

新版本的Windows Mobile只支持。net应用程序(我很确定没有其他手机支持。net应用程序…)

#5


0  

This is not entirely true. If a given feature has platform specific, then one must enwrap such constructs inside that platform-name's braces in .pro file.

这并非完全正确。如果给定的特性具有特定于平台的特性,那么必须在.pro文件中的平台名称的大括号内封装这些构造。

e.g., for symbian:

例如,塞班系统:

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

#6


0  

The bulk of the Qt framework as everyone else has answered will work on all platforms, okay if not all at the moment, it soon will be. Plus Qt is growing in not just it's framework, but also for its support and users.

Qt框架的大部分内容都将在所有平台上进行,如果不是全部的话,很快就会实现。此外,Qt不仅在它的框架中成长,而且在它的支持和用户中成长。

The only difficulty you will find is when you need to use and external library to run on all platforms. For example, I'm working with ffmpeg and my '.pro' file is currently just set up for Windows and Android, but it works.

您将发现的唯一困难是何时需要使用和外部库在所有平台上运行。例如,我正在与ffmpeg和my ' s合作。pro的文件目前只是为Windows和Android设置的,但它确实有效。

Compiling Qt code for each platform is a doddle. Setting up external libraries is fiddly stuff.

为每个平台编译Qt代码是一件小事。设置外部库是一件棘手的事情。


推荐阅读
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在安装并配置了Elasticsearch后,我在尝试通过GET /_nodes请求获取节点信息时遇到了问题,收到了错误消息。为了确保请求的正确性和安全性,我需要进一步排查配置和网络设置,以确保Elasticsearch集群能够正常响应。此外,还需要检查安全设置,如防火墙规则和认证机制,以防止未经授权的访问。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文对比了杜甫《喜晴》的两种英文翻译版本:a. Pleased with Sunny Weather 和 b. Rejoicing in Clearing Weather。a 版由 alexcwlin 翻译并经 Adam Lam 编辑,b 版则由哈佛大学的宇文所安教授 (Prof. Stephen Owen) 翻译。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • Maven Web项目创建时JSP文件常见错误及解决方案
    Maven Web项目创建时JSP文件常见错误及解决方案 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 链表作为一种与数组并列的基本数据结构,在Java中有着广泛的应用。例如,Java中的`ArrayList`基于数组实现,而`LinkedList`则是基于链表实现。链表在遍历操作时具有独特的性能特点,特别是在插入和删除节点时表现出色。本文将详细介绍单向链表的基本概念、操作方法以及在Java中的具体实现,帮助读者深入理解链表的特性和应用场景。 ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
author-avatar
我爱你可你不懂_516
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有