क्यूएमएल में फ़ाइलों तक पहुंचने के बारे में पढ़ने के लिए विकी पेज का पालन करें। नोकिया विकी फोरम http://web.archive.org/web/20150227025348/http://developer.nokia.com/community/wiki/Reading_and_writing_files_in_QML
सारांश:
एक कस्टम QML प्रकार बनाएं FileIO:
fileio.h
#ifndef FILEIO_H
#define FILEIO_H
#include <QObject>
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& data);
QString source() { return mSource; };
public slots:
void setSource(const QString& source) { mSource = source; };
signals:
void sourceChanged(const QString& source);
void error(const QString& msg);
private:
QString mSource;
};
#endif // FILEIO_H
fileio.cpp
#include "fileio.h"
#include <QFile>
#include <QTextStream>
FileIO::FileIO(QObject *parent) :
QObject(parent)
{
}
QString FileIO::read()
{
if (mSource.isEmpty()){
emit error("source is empty");
return QString();
}
QFile file(mSource);
QString fileContent;
if (file.open(QIODevice::ReadOnly)) {
QString line;
QTextStream t(&file);
do {
line = t.readLine();
fileContent += line;
} while (!line.isNull());
file.close();
} else {
emit error("Unable to open the file");
return QString();
}
return fileContent;
}
bool FileIO::write(const QString& data)
{
if (mSource.isEmpty())
return false;
QFile file(mSource);
if (!file.open(QFile::WriteOnly | QFile::Truncate))
return false;
QTextStream out(&file);
out << data;
file.close();
return true;
}
रजिस्टर नई QML प्रकार:
#include "fileio.h"
Q_DECL_EXPORT int main(int argc, char *argv[])
{
...
qmlRegisterType<FileIO, 1>("FileIO", 1, 0, "FileIO");
...
}
वास्तविक QML उपयोग:
import QtQuick 1.1
import FileIO 1.0
Rectangle {
width: 360
height: 360
Text {
id: myText
text: "Hello World"
anchors.centerIn: parent
}
FileIO {
id: myFile
source: "my_file.txt"
onError: console.log(msg)
}
Component.onCompleted: {
console.log("WRITE"+ myFile.write("TEST"));
myText.text = myFile.read();
}
}
कृपया जाने के लिए और सवाल आपने पहले कहा है की समीक्षा करें। अगर किसी ने आपके प्रश्न का उत्तर दिया है, तो जवाब पर निशान लगाएं। अगर किसी ने इसका उत्तर नहीं दिया है, तो कृपया अपना प्रश्न संपादित करें ताकि यह उत्तरदायी हो। –
@ Styne666 क्या इस प्रश्न का उत्तर mposting कोई समस्या है। मैंने कुछ प्रश्न हटा दिए क्योंकि वे जवाब देने के लिए बहुत पुराने हैं। अब यह ठीक है? – Rahul
अच्छी तरह से लोग आपके प्रश्नों का उत्तर क्यों देना चाहते हैं यदि आप कभी भी अपने उत्तरों को सही के रूप में चिह्नित नहीं करते हैं? मैं इस साइट का उपयोग कैसे करें इस बारे में एक चर्चा में प्रवेश नहीं कर रहा हूं। जाओ और संपूर्ण [एफएक्यू] (http://stackoverflow.com/faq) ** अब ** पूरी तरह से पढ़ें, जब तक आप [विश्लेषणात्मक बैज] प्राप्त नहीं करते (http://stackoverflow.com/badges/1306/ विश्लेषणात्मक)। लिंक के लिए –