使用 C++ 扩展 QML

1.方法一:通过qmlRegisterType注册C++实例。

2.方法二:通过QtQuick 2 QML Extension Plugin创建一个名为fileio插件,这个插件包含一个叫作FileIO的对象,该对象位于模块“org.example.io”。

fileio.h

#ifndef FILEIO_H
#define FILEIO_H

#include <QObject>
#include <QUrl>

class FileIO : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
    Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
public:
    explicit FileIO(QObject *parent = 0);

    Q_INVOKABLE void read();
    Q_INVOKABLE void write();

    QUrl source();
    void setSource(const QUrl &url);

    QString text();
    void setText(const QString &str);

signals:
    void sourceChanged();
    void textChanged(const QString &);

private:
    QString stext;
    QUrl url;
    class Private;
    friend class Private;
    Private *d;
};

#endif // FILEIO_H
fileio.cpp
#include "fileio.h"

class FileIO::Private {
public:
    Private() {}

    QString text;
    QUrl url;
};

FileIO::FileIO(QObject *parent) :
    QObject(parent),
    d(new FileIO::Private)
{

}

void FileIO::read()
{

}

void FileIO::write()
{

}

QUrl FileIO::source()
{

}

void FileIO::setSource(const QUrl &url)
{

}

QString FileIO::text()
{
    return this->stext;
}

void FileIO::setText(const QString &str)
{
    this->stext = str;
    emit textChanged(this->stext);
}
对于windows平台只需要构建,然后将qmldir和.dll文件放在“D:\Qt\Qt5.6.0\5.6\mingw49_32\qml\ org\xample\io”下面,“ org\xample\io”此路径

需要用户自己创建。

对于手机端,需要执行build.bat脚本,然后将qmldir和.so文件放在“D:\Qt\Qt5.6.0\5.6\android_armv7\qml\org\example\io”下面,“org\xample\io”

此路径需要用户自己创建。

build.bat

set ANDROID_NDK_ROOT=D:\android\sdk\android-ndk-r10e
D:\Qt\Qt5.6.0\5.6\android_armv7\bin\qmake.exe CONFIG+=debug_and_release
D:\Qt\Qt5.6.0\Tools\mingw492_32\bin\mingw32-make.exe
D:\Qt\Qt5.6.0\Tools\mingw492_32\bin\mingw32-make.exe install


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值