我们知道大部分软件关闭之后再次打开一般是会恢复上一次关闭的之前的大小和位置,所以我们自己用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");
}
}