ui界面图

修改project1、2、3的数值,点击保存按钮

点击默认,project1,2,3恢复为默认参数

点击加载,选择刚才保存的ini文件,读取project1,2,3的参数

所保存的ini配置文件

Qt编写过程

1.ui界面

三个Label,三个LineEdit,三个PushButton控件

ObjectName分别命名为

label_1, label_2, label_3;

lineEdit_1, lineEdit_2, lineEdit_3;

save_pushButton_1, load_pushButton_2, default_pushButton_3;

2.pro

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

3 widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QtCore/QCoreApplication>
#include <QSettings>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();QSettings *settings;private slots:void on_save_pushButton_1_clicked();void on_load_pushButton_2_clicked();void on_default_pushButton_3_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

4. main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

5. widget.cpp

#include "widget.h"
#include "ui_widget.h"#include <QDir>
#include <QDebug>
#include <QDateTime>
#include <QTextCodec>
#include <QMessageBox>
#include <QFileDialog>#define PROJECT_1 1
#define PROJECT_2 2
#define PROJECT_3 3Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 给ui图上了三个lineEdit设置默认值ui->lineEdit_1->setText(QString::number(PROJECT_1));ui->lineEdit_1->setAlignment(Qt::AlignHCenter);ui->lineEdit_2->setText(QString::number(PROJECT_2));ui->lineEdit_2->setAlignment(Qt::AlignHCenter);ui->lineEdit_3->setText(QString::number(PROJECT_3));ui->lineEdit_3->setAlignment(Qt::AlignHCenter);
}Widget::~Widget()
{delete ui;
}void Widget::on_save_pushButton_1_clicked()
{// 获取当前Qt程序的路径QString dir_str = QDir::currentPath();// 文件夹命名为inifiledir_str += "/inifile";// 定义Qdir对象QDir dir;// 检查目录是否存在,若不存在则新建if(!dir.exists(dir_str)){// 新建inifile文件夹dir.mkpath(dir_str);}// 定义文件格式const QString suffix = ".ini";// 获取当前系统时间,并存储在一个QString对象上QString createTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH-mm-ss");// 在inifile文件夹中新建一个ini文件,已当前时间命名settings = new QSettings(dir_str + "/" + createTime + suffix, QSettings::IniFormat);// 以键值对的形式写入数据settings->setValue("Project/project1", ui->lineEdit_1->text());settings->setValue("Project/project2", ui->lineEdit_2->text());settings->setValue("Project/project3", ui->lineEdit_3->text());delete settings;// 尝试打开刚刚创建的ini文件QFile file(dir_str + "/" + createTime + suffix);if(file.exists())  // 打开成功的提示{QMessageBox::information(this, tr("提示 Tips"), tr("保存成功!Saving succeeded!"));}else  // 打开失败的提示{QMessageBox::information(this, tr("提示 Tips"), tr("保存失败!Saving failed!"));}
}void Widget::on_load_pushButton_2_clicked()
{// 生成打开文件对话框,选择inifile文件夹中的ini文件进行读取QString s =  QFileDialog::getOpenFileName(this, "Open", "./inifile", "(*.ini)");//读取ini配置文件QSettings * myini = new QSettings(s, QSettings::IniFormat);// 根据读取结果,给ui图上了三个lineEdit赋值ui->lineEdit_1->setText(myini->value("Project/project1").toString());ui->lineEdit_2->setText(myini->value("Project/project2").toString());ui->lineEdit_3->setText(myini->value("Project/project3").toString());delete myini;
}void Widget::on_default_pushButton_3_clicked()
{// 给ui图上了三个lineEdit设置默认值ui->lineEdit_1->setText(QString::number(PROJECT_1));ui->lineEdit_2->setText(QString::number(PROJECT_2));ui->lineEdit_3->setText(QString::number(PROJECT_3));
}

Qt 生成ini配置文件 保存和读取数据相关推荐

  1. c#读取ini配置文件、将配置数据保存至ini文件

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#读取ini配置文件.将配置数据保存至ini文件 测试代码 static void Main() {string value = readini(& ...

  2. python-configparser生成ini配置文件

    写入配置: 创建文件:configTest.ini import configparserconfig = configparser.ConfigParser() config['DEFAULT'] ...

  3. Delphi INI文件保存与读取

    //需要引用IniFiles usessystem.IniFiles; //保存INI配置文件 procedure TForm1.btnSaveClick(Sender: TObject); varm ...

  4. 【Y忍冬草】QT读写ini配置文件

    文章目录 1.ini文件格式 2. ini配置文件的读写.删除 3. 结果 4.源码下载  在我们进行软件系统开始时,对于一些参数我们需要进行配置,这时我们就会用ini类型的配置文件.其实我们在很多软 ...

  5. QT 读ini配置文件

    读取文件 #include "read.h"total_region total; A1_region A1; A2_region A2; A3_region A3; A1_Sma ...

  6. Qt写ini配置文件

    //Qt中使用QSettings类读写ini文件 //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省 配置文件由节,键,值组成 [IP] 键 ...

  7. andriod之配置文件保存与读取

    第一个android demo 实现对配置文件的读取与写入. 界面结果如下: 涉及到的知识点: sharedPreferences 实现配置文件的读取与写入 findViewById:根据id获取界面 ...

  8. python保存模块_Python使用Pickle模块进行数据保存和读取的讲解

    pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的. 但必须注意的是python2以ASCII形式保存,而在python3中pickle是使用转换二进制的 ...

  9. QT中使用QSettings保存应用程序配置信息

    一.问题描述 今天遇到一个问题,就是想实现一个软件,我上一次开启软件时候配置的IP地址以及,打开的文件路径,能够在我下一次打开软件时候自动写入上一次配置的信息,不需要再重新设置配置了. 二.解决方法 ...

最新文章

  1. go get 失败 no go files in_Go 每日一库之 dig
  2. (0107)iOS开发之UI实时调试InjectionIII的使用
  3. 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
  4. 设计模式--简单工厂模式
  5. 学mysql是学指令吗_学习Mysql (二) 常用指令
  6. FlightGear属性树
  7. 晶振封装(绝对实用)
  8. 什么是计算机数字代码,计算机代码1—10这10个数字表示什么意思 例如:数字1 计算机代码00001 这是什么意思...
  9. python web框架django面试题收藏
  10. 系统软件版本变更规范
  11. 第一个虚拟仿真项目,冲冲冲
  12. 这些模具设计要点你要明白
  13. 用 Golang 实现矩阵运算库
  14. 盘点SCI、SSCI、EI……的前世今生
  15. The Tomcat connector configured to listen on port 8082 failed to start.启动web项目报错
  16. AoE 和TensorFlow Lite ,没有谁比它们更般配!
  17. 稳压二极管工作原理、重要参数意义和典型电路参数计算
  18. 火狐浏览器webdriver下载
  19. ue4音效、动画结合实例
  20. 薛家计算机培训,薛家ug编程网络培训

热门文章

  1. 基于均值滤波的非线性反锐化掩膜
  2. 由于手机中的时间不对,导致的https网络连接失败
  3. Cadence Allegro 17.4学习记录开始02-原理图Capture CIS 17.4
  4. centos7.3本地ISO镜像安装图形化界面及kvm
  5. 图片去雾软件有哪些?什么软件有去雾功能?
  6. Win10已重置应用默认设置解决方法
  7. 已重置应用默认设置老是弹出 html,Win10系统为什么总是弹出已重置应用默认设置该如何处理...
  8. 科达飞讯SDK出现 20021,引擎错误
  9. 我目前常用的几种Java快捷键
  10. 车牌识别的研发,四种车牌识别软件