#include "widget.h"
#include "ui_widget.h"
#include<QTime>
#include<iostream>
#include<QString>
#include<QSettings>
#include<QDebug>
#include<QFile>
#include <QMessageBox>
#include <QDir>
#include<QFileDialog>
#define CONFIG_FILE "config.ini"
using namespace std;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QSettings *configIniRead = new QSettings("config.ini", QSettings::IniFormat); //在堆里面开辟了一块区域,然后把地址赋给栈中的某个地址
dir_src = configIniRead->value("main/bak_src").toString();// value 是Qsetting里面的公开方法
cout << "当前目录为:" <<dir_src.toLocal8Bit().data();
dir_dest = configIniRead->value("main/bak_dest").toString(); // 配置文件里面有目标地址
gpg_key = configIniRead->value("main/gpg_key").toString();
exclude_from = configIniRead->value("exclude/exclude").toString();
delete configIniRead; // 与初始化的对象成对出现,会造成内存泄漏
ui->lineEdit->setText(dir_src);
}
Widget::~Widget()
{
delete ui;
}
上面是cpp里面的
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
QString dir_src;
QString dir_dest;
QString dir_restore;
QString gpg_key;
QString arc_user;
QString arc_path;
QString exclude_from;
};
#endif // WIDGET_H
上面是h文件里面的
[exclude]
exclude=--exclude *.iso --exclude .gvfs/** --exclude .thumbnails/** --exclude .trash/** --exclude .Trash/** --exclude *-gitsvn/** --exclude *-cvs/** --exclude *-svn/** --exclude *-git/** --exclude *-sf/** --exclude *.vc --exclude *.tc --exclude .cache/** --exclude .ccache/** --exclude ./Downloads/** --exclude ./.wine/** --exclude ./Documents/Dropbox/**
[main]
arc_path=bak_lg
arc_user=testuser
bak_dest=/home/hu/backup
bak_src=/home/hu/retore
gpg_key=xujing113221@hotmail.com
last_time=1572976195
上面是配置文件
我在读取配置文件下面做了一个输出,但是就是没有任何输出,我之后在后面加了字符串,发现有了输出,说明是配置文件没有被读出来
于是我改了配置文件的权限是 777,但是还是没有输出
最后我实在受不了,就重新建立一个项目尝试了一下,还是一点反应都没有
配置文件所在目录 就是h文件和cpp文件所在的目录