Qt 生成ini配置文件 保存和读取数据
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配置文件 保存和读取数据相关推荐
- c#读取ini配置文件、将配置数据保存至ini文件
全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#读取ini配置文件.将配置数据保存至ini文件 测试代码 static void Main() {string value = readini(& ...
- python-configparser生成ini配置文件
写入配置: 创建文件:configTest.ini import configparserconfig = configparser.ConfigParser() config['DEFAULT'] ...
- Delphi INI文件保存与读取
//需要引用IniFiles usessystem.IniFiles; //保存INI配置文件 procedure TForm1.btnSaveClick(Sender: TObject); varm ...
- 【Y忍冬草】QT读写ini配置文件
文章目录 1.ini文件格式 2. ini配置文件的读写.删除 3. 结果 4.源码下载 在我们进行软件系统开始时,对于一些参数我们需要进行配置,这时我们就会用ini类型的配置文件.其实我们在很多软 ...
- QT 读ini配置文件
读取文件 #include "read.h"total_region total; A1_region A1; A2_region A2; A3_region A3; A1_Sma ...
- Qt写ini配置文件
//Qt中使用QSettings类读写ini文件 //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省 配置文件由节,键,值组成 [IP] 键 ...
- andriod之配置文件保存与读取
第一个android demo 实现对配置文件的读取与写入. 界面结果如下: 涉及到的知识点: sharedPreferences 实现配置文件的读取与写入 findViewById:根据id获取界面 ...
- python保存模块_Python使用Pickle模块进行数据保存和读取的讲解
pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的. 但必须注意的是python2以ASCII形式保存,而在python3中pickle是使用转换二进制的 ...
- QT中使用QSettings保存应用程序配置信息
一.问题描述 今天遇到一个问题,就是想实现一个软件,我上一次开启软件时候配置的IP地址以及,打开的文件路径,能够在我下一次打开软件时候自动写入上一次配置的信息,不需要再重新设置配置了. 二.解决方法 ...
最新文章
- go get 失败 no go files in_Go 每日一库之 dig
- (0107)iOS开发之UI实时调试InjectionIII的使用
- 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
- 设计模式--简单工厂模式
- 学mysql是学指令吗_学习Mysql (二) 常用指令
- FlightGear属性树
- 晶振封装(绝对实用)
- 什么是计算机数字代码,计算机代码1—10这10个数字表示什么意思 例如:数字1 计算机代码00001 这是什么意思...
- python web框架django面试题收藏
- 系统软件版本变更规范
- 第一个虚拟仿真项目,冲冲冲
- 这些模具设计要点你要明白
- 用 Golang 实现矩阵运算库
- 盘点SCI、SSCI、EI……的前世今生
- The Tomcat connector configured to listen on port 8082 failed to start.启动web项目报错
- AoE 和TensorFlow Lite ,没有谁比它们更般配!
- 稳压二极管工作原理、重要参数意义和典型电路参数计算
- 火狐浏览器webdriver下载
- ue4音效、动画结合实例
- 薛家计算机培训,薛家ug编程网络培训
热门文章
- 基于均值滤波的非线性反锐化掩膜
- 由于手机中的时间不对,导致的https网络连接失败
- Cadence Allegro 17.4学习记录开始02-原理图Capture CIS 17.4
- centos7.3本地ISO镜像安装图形化界面及kvm
- 图片去雾软件有哪些?什么软件有去雾功能?
- Win10已重置应用默认设置解决方法
- 已重置应用默认设置老是弹出 html,Win10系统为什么总是弹出已重置应用默认设置该如何处理...
- 科达飞讯SDK出现 20021,引擎错误
- 我目前常用的几种Java快捷键
- 车牌识别的研发,四种车牌识别软件