最近与群友交流,突然发现我还从来没有在qml中使用本地文件的功能,查阅QML的Text元素,居然没有source这个属性去加载本地的文本文件等,其实js本来也是无法操作io,但是QML有C++作为接口来处理,不知为何没有提供这样的属性,遂研究了一下这个功能。
既然QML不提供这样的属性和方法,那我们只能从C++入手 自己写个操作文件的类,然后处理文件。
主要是一个继承QObject的类,下面是代码:
#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
#include <QTextStream>
#include <QFile>
class FileIO : public QObject
{
Q_OBJECT
public:
Q_PROPERTY(QString source
READ source
WRITE setSource
NOTIFY sourceChanged)
explicit FileIO(QObject *parent = 0);
Q_INVOKABLE QString read();
Q_INVOKABLE bool write(const QString&