QML访问C++自定义类成员变量

QML访问C++自定义类成员变量

1.创建自定义QObject类MyObject,定义私有成员变量

//myobject.h
private:
    int m_iValue;
    QString m_sString;

2.光标置于成员变量上按Alt+Enter键,在.cpp文件中实现相关功能

//myobject.cpp
int MyObject::iValue() const
{
    return m_iValue;
}

void MyObject::setIValue(int newIValue)
{
    if (m_iValue == newIValue)
        return;
    m_iValue = newIValue;
    emit iValueChanged();
}
//myobject.h
Q_PROPERTY(int iValue READ iValue WRITE setIValue NOTIFY iValueChanged)

3.在自定义类MyObject头文件中声明该类可被QML引用

//myobject.h
#include <QtQml> //包含QtQml
class MyObject : public QObject
{
    Q_OBJECT
	//添加宏
    QML_ELEMENT

4.在main.cpp中包含myobject.h头文件, 在 QML 系统中注册名为 MyObject 的 C++ 类型 ,并在QML中引用

//main.cpp
qmlRegisterType<MyObject>("MyObj",1,0,"MyObject");
//main.qml
import MyObj 1.0

5.QML访问MyObject 成员变量

//main.qml
import QtQuick
import QtQuick.Window 2.15
import MyObj 1.0
Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    MyObject{
        iValue: 10
        sString: "zhangsan"

        Component.onCompleted: {
            console.log(iValue,sString)
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值