C++和QML 交互方式

1.先写一个类 方便QML调用

先说明能被QML调用的结论:

1. 槽函数可以直接访问

2.被Q_INVOKABLE 修饰的 函数可以直接调用

3.被 Q_PROPERTY(int value MEMBER m_value NOTIFY valueChanged)标记的变量可以修改和调用

#include 
#include 

class MyObject : public QObject
{
    Q_OBJECT
    Q_PROPERTY(int value MEMBER m_value NOTIFY valueChanged)
    Q_PROPERTY(QString str MEMBER m_str NOTIFY strChanged)
public:
    explicit MyObject(QObject *parent = nullptr);

public:
    void setValue(int newValue);
    int getValue();

    void setStr(QString newStr);
    QString getStr();

    Q_INVOKABLE void  initUI();
public slots:
    void setname();

signals:
    void valueChanged();
    void strChanged();

private:
    int m_value=100;
    QString m_str;
};

.通过注册的方式交互方式

1暴露全局变量的方式 。

context->("m_text",m_text);

2.是采用自定义控件的方式

qmlRegisterType("MyObject", 1, 0, "Object"); 

/*********************************************************************************************************/

其中自定义控件的方式可以 直接嵌套数据和绘图以及表格

通过 CPP继承 Qquickitem  进行操作。

你可能感兴趣的:(c++,开发语言,1024程序员节)