Image{
source: "file:///mnt/usbhost1/Config/logo.png"
}
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
}
}
org\rophie\ProjectName即为java类的包名package org.rophie.ProjectName;
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);
}
}
QAndroidJniObject::callStaticMethod<void>("org/rophie/ProjectName/JavaClass","setVolume","(I)V",3);
//具体参照QAndroidJniObject类
public void onReceive(Context context, Intent intent) {
......
//JavaClass为继承QtActivity的java主类
Intent intent2 = new Intent(context, JavaClass.class);
......
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有