linux下QT编程学习笔记——配置文件的读写

系统:Ubuntu13

QT版本:QT5.0.2

QT对配置文件的读写使用QSettings类

新建一个QSetting对象同时绑定配置文件路径和文件名

QSettings user_cfg("/home/ttk/","usercfg");

利用QSettings的函数对象value()和setValue()可以对配置文件进行读写

下面是我写的一个小程序的源代码

#include "widget.h"
#include "ui_widget.h"
#include <QSettings>
 
 
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界面如图所示

linux下QT编程学习笔记——配置文件的读写_第1张图片

第一次启动的时候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 <QSettings>
 
 
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();
}
 界面如下所示: 
 

linux下QT编程学习笔记——配置文件的读写_第2张图片

这时候再看看配置文件所这样的

[contact%20information]
E-mail=hhhhhhh
phonenumber=1234567


[user]
password=asf
user=15

QT工程文件可以到这个链接下载

http://download.csdn.net/detail/satanhbl/7315703

你可能感兴趣的:(编程,linux,ubuntu,qt,qt5)