QtforAndroid开发实例分析

这篇文章主要介绍“Qt for Android开发实例分析”,在日常操作中,相信很多人在Qt for Android开发实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Qt for Android开发实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站是一家集网站建设,娄烦企业网站建设,娄烦品牌网站建设,网站定制,娄烦网站建设报价,网络营销,网络优化,娄烦网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

具体步骤如下:

1.Android平台的视频播放,只能使用qml的MediaPlayer

2.qml中控件的路径必须加file://  例如:

Image{   source: "file:///mnt/usbhost1/Config/logo.png" }

3.C++与qml中js的方法互调

QQuickView view; view.setSource(QUrl(QStringLiteral("qrc:///qml/MainView.qml"))); QObject *qmlObj =(QObject*) view.rootObject(); MainWnd *w=new MainWnd(object); //暴露C++类给qml供其调用,别名mainWndClass view.engine ()->rootContext ()->setContextProperty (QLatin1String("mainWndClass"),w);  //c++调用qml中的js方法 //参数必须转换为QVariant QMetaObject::invokeMethod (qmlObj,"showRight",Q_ARG(QVariant,1)); //调用子项的js方法 qmlPlayer = qmlObj->findChild<QObject*>("playerArea"); QMetaObject::invokeMethod (qmlPlayer,"setVideoFile",Q_ARG(QVariant,currentVideoFile));
//MainView.qml Rectangle {   anchors.fill: parent   property int leftAreaWidth: this.width/5*4   property int rightAreaWidth: this.width/5   property int queueFontSize   function showRight(isShow){     ....   }   Player{     id:playerArea     //设置objectName,在c++中才能找到它     objectName: "playerArea"     width: parent.width     height: parent.height   } }

4.c++调用java Android api

在项目目录下建立目录\android\src\org\rophie\ProjectName\JavaClass.java

org\rophie\ProjectName即为java类的包名package org.rophie.ProjectName;

如我调用Android API调节系统音量

package org.rophie.ProjectName; import org.qtproject.qt5.android.bindings.QtActivity; import android.widget.Toast; import android.media.AudioManager; import android.content.Context; public class JavaClass extends QtActivity{   private static JavaClass m_instance;   private static AudioManager mAudioManager;   public JavaClass()   {     //构造函数必须     m_instance = this;   }    public static void setVolume(int vol){    if(mAudioManager==null){      mAudioManager = (AudioManager)m_instance.getSystemService(Context.AUDIO_SERVICE);    }      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, vol, 0);    } }

C++调用:

QAndroidJniObject::callStaticMethod<void>("org/rophie/ProjectName/JavaClass","setVolume","(I)V",3);    //具体参照QAndroidJniObject类

5.BroadcastReceiver实现开机自启,和Android一模一样

public void onReceive(Context context, Intent intent) {  ......  //JavaClass为继承QtActivity的java主类  Intent intent2 = new Intent(context, JavaClass.class);  ...... }

6.调用第三方jar包,在src同级目录下新建目录libs,将.jar拷入即可使用

到此,关于“Qt for Android开发实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

网页名称:QtforAndroid开发实例分析
URL标题:https://www.cdcxhl.com/article44/isgiee.html

成都网站建设公司_创新互联,为您提供品牌网站制作静态网站软件开发关键词优化微信小程序网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发