使用 C++ 扩展 QML

来源:互联网 发布:hadoop和python 编辑:程序博客网 时间:2024/06/05 21:49

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-r10eD:\Qt\Qt5.6.0\5.6\android_armv7\bin\qmake.exe CONFIG+=debug_and_releaseD:\Qt\Qt5.6.0\Tools\mingw492_32\bin\mingw32-make.exeD:\Qt\Qt5.6.0\Tools\mingw492_32\bin\mingw32-make.exe install


0 0