qt android文件读写文件,qt android 开发之写入xml配置文件篇
應用初始化本地數據,需要讀取配置文件,小編介紹如何通過xml簡單寫入配置文件,至于為什么選擇這個格式,主要因為在qml中有一個很好
的類使用:XmlListModel
xmlListModel能直接讀取xml配置文件,快速方便開發,再加上自己寫一個專門寫入配置文件的類,兩個就成了絕配啊!
代碼:
datasbase.h
#ifndef DATASBASE_H
#define DATASBASE_H
#include
#include
#include
#include
#include
class DatasBase : public QObject
{
Q_OBJECT
public:
explicit DatasBase(QObject *parent = 0);
~DatasBase();
Q_INVOKABLE void setFileName(QString filename);
Q_INVOKABLE void writeStartDocument();
Q_INVOKABLE void writeStartElement(QString str);
Q_INVOKABLE void writeTextElement(QString elementT, QString content);
Q_INVOKABLE void writeEndElement();
Q_INVOKABLE void writeEndDocument();
Q_INVOKABLE bool openplaylistFile();
Q_INVOKABLE void closeplaylistFile();
signals:
public slots:
private:
QFile *playListDatas;
QDir *playListDatasdir;
QXmlStreamWriter *xmlWriter;
};
#endif // DATASBASE_H
datasbase.cpp
#include "datasbase.h"
#include
DatasBase::DatasBase(QObject *parent) : QObject(parent)
{
//"file:///mnt/android/data/colorlight/playlist->xml"
//配置文件的路徑
playListDatasdir=new QDir("/mnt/sdcard/Android/data/colorlight/playlist.xml");
//判斷是否存在文件
if(!playListDatasdir->exists()){
qDebug()<mkdir("/mnt/sdcard/Android/data/colorlight");
}
//初始化配置數據
playListDatas=new QFile("/mnt/sdcard/Android/data/colorlight/playlist.xml");
xmlWriter=new QXmlStreamWriter(playListDatas);
xmlWriter->setAutoFormatting(true);
qDebug()<absolutePath();
}
DatasBase::~DatasBase()
{
}
//設置配置文件的文件名
void DatasBase::setFileName(QString filename){
playListDatas->setFileName(filename);
}
bool DatasBase::openplaylistFile(){
return playListDatas->open(QIODevice::WriteOnly | QIODevice::Text);
}
void DatasBase::writeStartDocument(){
xmlWriter->writeStartDocument();
}
void DatasBase::writeStartElement(QString str){
xmlWriter->writeStartElement(str);
}
void DatasBase::writeTextElement(QString elementT, QString content){
xmlWriter->writeTextElement(elementT,content);
}
void DatasBase::writeEndElement(){
xmlWriter->writeEndElement();
}
void DatasBase::writeEndDocument(){
xmlWriter->writeEndDocument();
}
void DatasBase::closeplaylistFile(){
playListDatas->close();
}
通過這個類,我們可以方便在qml中調用寫入數據配置的文件
下面是寫入音樂列表配置的代碼例子
XmlListModel{
id:playlistModel
source:"file:///mnt/sdcard/Android/data/colorlight/playlist.xml"
query: "/data/music"
XmlRole{
name:"name";query: "name/string()";isKey: true
}
XmlRole{
name:"path";query: "path/string()";isKey: true
}
onStatusChanged: {
if(status==XmlListModel.Ready){
for(var mindex=0;mindex
tempplaylistdata.append({"name":playlistModel.get(mindex).name,
"path":playlistModel.get(mindex).path})
}
}
}
}
ListModel{
id:tempplaylistdata
}
//保存掃描后的音樂文件
function saveDatas(){
if(tempplaylistdata.count==0){
return
}
// console.log()
datasbase.openplaylistFile()
datasbase.writeStartDocument()
datasbase.writeStartElement("data")
for(var a=0;a
datasbase.writeStartElement("music")
datasbase.writeTextElement("name",tempplaylistdata.get(a).name)
datasbase.writeTextElement("path",tempplaylistdata.get(a).path)
datasbase.writeEndElement()
}
datasbase.writeEndElement()
datasbase.writeEndDocument()
datasbase.closeplaylistFile()
}
總結
以上是生活随笔為你收集整理的qt android文件读写文件,qt android 开发之写入xml配置文件篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 读取mysql另一个窗体中显示出来_
- 下一篇: .sh文件怎么写_typeScript