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