Pfeffer 2019-11-19 04:20 采纳率: 50%
浏览 683
已采纳

qt 很简单的一段代码 利用Qsetting 完成,但是在读取配置文件的时候,出问题

#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文件所在的目录

  • 写回答

2条回答 默认 最新

  • qtchen_1988 2019-11-19 10:42
    关注

    你把config.ini文件拷贝到编译生成的文件夹的根目录(比如,build-xxx-Desktop_Qt_5_x_x_MinGW_32bit-Debug)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波