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

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条)

报告相同问题?

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来