QSettings类的基本使用
示例代码
写入配置文件
//打开配置文件,写入宽高
//该构造函数使用的参数1:配置文件的路径,参数2:使用ini格式进行读写
QSettings setting("./config.ini",QSettings::IniFormat);
setting.setValue("width",this->width()); //对应的键值进行写入数据(这里写入的是程序窗口的宽度)
setting.setValue("height",this->height());
读取配置文件
//读取配置文件宽高
QSettings setting("./config.ini",QSettings::IniFormat);
int width = setting.value("width").toInt(); //读取文件键值相应的数据
int height = setting.value("height").toInt();
实现过程:程序关闭时,触发关闭事件,关闭事件里将窗口最后的宽和高写入配置文件。
当下一次程序启动,构造函数里读取配置文件的宽高,并进行resize() 调整窗口宽高。
.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void closeEvent(QCloseEvent *event); //关闭事件
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//读取配置文件宽高
QSettings setting("./config.ini",QSettings::IniFormat);
int width = setting.value("width").toInt();
int height = setting.value("height").toInt();
//如果读取到width和height都为0,说明没有配置,是第一次打开,使用默认宽高
if(width == 0 && height == 0)
{
this->resize(500,500);
}
else //设置为上一次关闭软件时的宽高
{
this->resize(width,height);
}
}
MainWindow::~MainWindow()
{
delete ui;
}
//关闭事件
void MainWindow::closeEvent(QCloseEvent *event)
{
//打开配置文件,写入宽高
QSettings setting("./config.ini",QSettings::IniFormat); //在用户当前目录下
setting.setValue("width",this->width());
setting.setValue("height",this->height());
}