91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt for Android開發實例分析

發布時間:2021-12-15 14:15:04 來源:億速云 閱讀:309 作者:iii 欄目:移動開發

這篇文章主要介紹“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開發實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠东县| 五大连池市| 咸丰县| 罗田县| 双城市| 桑植县| 金溪县| 连云港市| 南汇区| 广丰县| 宝清县| 太湖县| 五台县| 德令哈市| 柯坪县| 齐河县| 新疆| 临沧市| 公主岭市| 遵化市| 万载县| 杭锦后旗| 鹤峰县| 和硕县| 东乌| 鱼台县| 壤塘县| 西青区| 太仓市| 柘荣县| 广州市| 南宁市| 独山县| 渑池县| 威海市| 咸丰县| 大冶市| 乾安县| 四川省| 东乡| 凤山县|