系统:Ubuntu13
QT版本:QT5.0.2
QT对配置文件的读写使用QSettings类
新建一个QSetting对象同时绑定配置文件路径和文件名
QSettings user_cfg("/home/ttk/","usercfg");
下面是我写的一个小程序的源代码
#include "widget.h"
#include "ui_widget.h"
#include
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QSettings user_cfg("/home/ttk/","usercfg");
ui->user_LE->setText(user_cfg.value("user").toString());
ui->passwd_LE->setText(user_cfg.value("password").toString());
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_save_PB_clicked()
{
QSettings user_cfg("/home/ttk/","usercfg");
user_cfg.setValue("user",ui->user_LE->text());
user_cfg.setValue("password",ui->passwd_LE->text());
}
UI界面如图所示
第一次启动的时候user和password都是空的,然后填上数据后点保存,关闭软件后再打开软件发现user和password确实是刚才填上去的数据。
但是我在home/ttk/目录下并未找到usercfg文件,最后用find指令找到了这个文件,躲在了/home/ttk/.config/home/ttk目录下,原来程序上填的目录不所从根目录开始的,而是从.config目录开始的。
打开usercfg如下内容如下:
[General]
password=sdf
user=15
接着尝试添加group用法
源代码如下:
#include "widget.h"
#include "ui_widget.h"
#include
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QSettings user_cfg("/home/ttk/","usercfg");
user_cfg.beginGroup("user");
ui->user_LE->setText(user_cfg.value("user").toString());
ui->passwd_LE->setText(user_cfg.value("password").toString());
user_cfg.endGroup();
user_cfg.beginGroup("contact information");
ui->pn_LE->setText(user_cfg.value("phonenumber").toString());
ui->em_LE->setText(user_cfg.value("E-mail").toString());
user_cfg.endGroup();
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_save_PB_clicked()
{
QSettings user_cfg("/home/ttk/","usercfg");
user_cfg.beginGroup("user");
user_cfg.setValue("user",ui->user_LE->text());
user_cfg.setValue("password",ui->passwd_LE->text());
user_cfg.endGroup();
user_cfg.beginGroup("contact information");
user_cfg.setValue("phonenumber",ui->pn_LE->text());
user_cfg.setValue("E-mail",ui->em_LE->text());
user_cfg.endGroup();
}界面如下所示:
这时候再看看配置文件所这样的
[contact%20information]
E-mail=hhhhhhh
phonenumber=1234567
[user]
password=asf
user=15
QT工程文件可以到这个链接下载
http://download.csdn.net/detail/satanhbl/7315703