qml实现读写一个ini配置文件,实现如何保存上次关闭软件时的大小和位置

我们知道大部分软件关闭之后再次打开一般是会恢复上一次关闭的之前的大小和位置,所以我们自己用qml开发一个软件项目的时候应该也要按照大部分软件再次打开时会恢复上一次关闭的之前的大小和位置。所以我们自己读写一个ini配置文件来保存关闭该软件时的位置和大小。

写ini配置文件函数代码如下:

void Configure::write(QString str, QString titleName)
{
    QSettings setFile(QCoreApplication::applicationDirPath()+ "/Data/setting/size.ini",QSettings::IniFormat); 

    if (str.contains("."))
    {
        int lastIndex = str.lastIndexOf("/");
        str = str.left(lastIndex);
    }
        setFile.setValue(titleName, str);
}

读函数如下:

QString Configure::Read(QString titleName)
{
 QSettings setFile(QCoreApplication::applicationDirPath()+ "/Data/setting/size.ini",QSettings::IniFormat);

 QString strFile = setFile.value(titleName).toString();

 return strFile;
}

main.qml中代码如下:

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3

ApplicationWindow {
    id: mainWindow
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    //这里 Component.onDestruction关闭项目
    Component.onDestruction: {
        Configureini.write(mainWindow.height, "height");
        Configureini.write(mainWindow.width, "width");
        Configureini.write(mainWindow.x, "x");
        Configureini.write(mainWindow.y, "y");
    }
    
    //这里是初始化项目
    Component.onCompleted: {
        mainWindow.height =  Configureini.read("height");
        mainWindow.width =  Configureini.read("width");
        mainWindow.x =  Configureini.read("x");
        mainWindow.y =  Configureini.read("y");
   }

}

 

你可能感兴趣的:(qt,qml)