QT创建和使用INI配置文件

匿名 (未验证) 提交于 2019-12-03 00:22:01

单独把配置文件写成一个类的好处是,在需要用到读写配置的类中只需要把配置的头文件包含进来就直接可以调用其方法,下面就是读写配置的代码,设置完毕重启生效。

widget.h

#ifndef WIDGET_H #define WIDGET_H  #include <QWidget>  namespace Ui { class Widget; }  class Widget : public QWidget {     Q_OBJECT  public:     explicit Widget(QWidget *parent = 0);     ~Widget();  public slots:     void SaveNetParametersSlot(); private:     Ui::Widget *ui; };  #endif // WIDGET_H

widget.cpp

#include "widget.h" #include "ui_widget.h" #include "ini_file.h"//只要将头文件包含进来就可以调用类的方法 #include <QMessageBox>  Widget::Widget(QWidget *parent) :     QWidget(parent),     ui(new Ui::Widget) {     ui->setupUi(this);      ui->lineEdit->setText(INI_File().GetIp());     ui->lineEdit_2->setText(INI_File().GetPort());     ui->lineEdit_3->setText(INI_File().GetUserName());     ui->lineEdit_4->setText(INI_File().GetPassword());      connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(SaveNetParametersSlot())); }  Widget::~Widget() {     delete ui; }  void Widget::SaveNetParametersSlot() {     if(ui->lineEdit->text().isEmpty()         || ui->lineEdit_2->text().isEmpty()         || ui->lineEdit_3->text().isEmpty()         || ui->lineEdit_4->text().isEmpty())     {         QMessageBox::information(NULL,"提示","参数有空值!");         return;     }      INI_File().SetIp(ui->lineEdit->text());     INI_File().SetPort(ui->lineEdit_2->text());     INI_File().SetUserName(ui->lineEdit_3->text());     INI_File().SetPassword(ui->lineEdit_4->text()); } 

ini_file.h

#ifndef INI_FILE_H #define INI_FILE_H  #include <QString> #include <QSettings>  class INI_File { public:     INI_File();     virtual ~INI_File();      void CreateFile(QString qstrFilePath, QString qstrFileName);      void SetIp(QString qstrIp);     QString GetIp();      void SetPort(QString qstrPort);     QString GetPort();      void SetUserName(QString qstrUserName);     QString GetUserName();      void SetPassword(QString qstrPassword);     QString GetPassword(); private:     QString m_qstrFileName;     QSettings *m_psetting; };  #endif // INI_FILE_H 

ini_file.cpp

#include "ini_file.h" #include <QtCore/QtCore> #include <QFile> #include <QDebug>  INI_File::INI_File() {     m_qstrFileName = QCoreApplication::applicationDirPath() + "/Config.ini";      qDebug()<<"m_qstrFileName: "<<m_qstrFileName;      //"Config.ini"配置文件,文件存在则打开,不存在则创建     m_psetting = new QSettings(m_qstrFileName,QSettings::IniFormat); }  INI_File::~INI_File() {     delete m_psetting;     m_psetting = NULL; }  void INI_File::SetIp(QString qstrIp) {     m_psetting->setValue("/NetParameters/ip",qstrIp); }  void INI_File::SetPort(QString qstrPort) {     m_psetting->setValue("/NetParameters/port",qstrPort); }  QString INI_File::GetPort() {     return m_psetting->value("/NetParameters/port").toString(); }  void INI_File::SetUserName(QString qstrUserName) {     m_psetting->setValue("/NetParameters/user",qstrUserName); }  QString INI_File::GetUserName() {     return m_psetting->value("/NetParameters/user").toString(); }  void INI_File::SetPassword(QString qstrPassword) {     m_psetting->setValue("/NetParameters/password",qstrPassword); }  QString INI_File::GetPassword() {     return m_psetting->value("/NetParameters/password").toString(); }  QString INI_File::GetIp() {     return m_psetting->value("/NetParameters/ip").toString(); } 

界面如下:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!