博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt android 开发之写入xml配置文件篇
阅读量:7237 次
发布时间:2019-06-29

本文共 2820 字,大约阅读时间需要 9 分钟。

应用初始化本地数据,需要读取配置文件,小编介绍如何通过xml简单写入配置文件,至于为什么选择这个格式,主要因为在qml中有一个很好

的类使用:XmlListModel
xmlListModel能直接读取xml配置文件,快速方便开发,再加上自己写一个专门写入配置文件的类,两个就成了绝配啊!
代码:
datasbase.h

#ifndef DATASBASE_H#define DATASBASE_H#include 
#include
#include
#include
#include
class DatasBase : public QObject{ Q_OBJECTpublic: 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**************"<< playListDatasdir->mkdir("/mnt/sdcard/Android/data/colorlight"); } //初始化配置数据 playListDatas=new QFile("/mnt/sdcard/Android/data/colorlight/playlist.xml"); xmlWriter=new QXmlStreamWriter(playListDatas); xmlWriter->setAutoFormatting(true); qDebug()<<"path"<
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

转载地址:http://ulgfm.baihongyu.com/

你可能感兴趣的文章
java多线程的等待唤醒机制及如何解决同步过程中的安全问题
查看>>
捷径 - The certain shortcut
查看>>
IE 的浏览器模式和文本模式(二)
查看>>
css3 背景
查看>>
LVS的DR和NAT模式配置
查看>>
总结概括对于大数据、高并发的网站如何进行优化的问题
查看>>
学习javascript必须订阅30个程序员的Blog
查看>>
如何将Exchange 2007迁移到一台新的服务器并且保留原有服务器名
查看>>
设置控件只读
查看>>
box-align,box-pack实现元素垂直底部对齐
查看>>
poj 2385Apple Catching(简单dp)
查看>>
出现有持续性的Lazy Write
查看>>
bootstrap-辅助类-情境文本颜色
查看>>
Python3类型提示
查看>>
websocket多线程问题
查看>>
从上往下打印二叉树
查看>>
决策支持系统是什么?
查看>>
解压缩
查看>>
Linux中curl命令和wget命令的使用介绍与比较
查看>>
shell之awk 记录
查看>>