错误信息
...\config.hpp:...: error: use of deleted function 'QFile::QFile(const QFile&)'
问题描述
我需要让这个QFile
在QList<QFile>
里不被回收。
代码
#ifndef INCLUDED_DM_CONFIG
#define INCLUDED_DM_CONFIG
#include <QtCore/QDebug>
#include <QtCore/QSize>
#include <QtCore/QFile>
#include <QtCore/QList>
#include <QtCore/QByteArray>
#include <QtCore/QJsonValue>
#include <QtCore/QJsonObject>
#include <QtCore/QJsonDocument>
#include <QtCore/QJsonParseError>
class DmConfig {
public:
DmConfig() {
this->update();
}
void update() {
for (QList<QFile>::Iterator iter = this->configFiles.begin(); iter != this->configFiles.end(); ++iter) {
QString configFileName = (*iter).fileName();
if ((*iter).open(QFileDevice::ReadOnly)) {
QByteArray configFileData = (*iter).readAll();
(*iter).close();
QJsonParseError configParseError;
QJsonDocument configDocument(QJsonDocument::fromJson(configFileData, &configParseError));
if (configParseError.error == QJsonParseError::NoError) {
this->configData[configFileName] = configDocument.object();
} else {
qWarning() << "Cannot parse \"" << configFileName << "\": " << configParseError.errorString();
}
} else {
qWarning() << "Cannot read \"" << configFileName << "\".";
}
}
}
QMap<QString, QJsonObject> data() {
return this->configData;
}
private:
// 问题在这里↘
QList<QFile> configFiles = QList<QFile>(1) << QFile("../congif/env.cfg");
// 问题在这里↗
QMap<QString, QJsonObject> configData;
};
#endif