|
这个是由于下面两个函数造成的:
void MainWindow::writeSettings() // 写入窗口设置
{
QSettings settings("yafeilinux", "myMdi");
settings.setValue("pos", pos()); // 写入位置信息
settings.setValue("size", size()); // 写入大小信息
}
void MainWindow::readSettings() // 读取窗口设置
{
QSettings settings("yafeilinux", "myMdi");
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
QSize size = settings.value("size", QSize(400, 400)).toSize();
move(pos);
resize(size);
}
当关闭程序前,如果程序窗口最大化了,那么关闭时执行:
void MainWindow::closeEvent(QCloseEvent *event) // 关闭事件
{
ui->mdiArea->closeAllSubWindows(); // 先执行多文档区域的关闭操作
if (ui->mdiArea->currentSubWindow()) {
event->ignore(); // 如果还有窗口没有关闭,则忽略该事件
} else {
writeSettings(); // 在关闭前写入窗口设置
event->accept();
}
}
这里调用了 writeSettings();将最大化后的窗口大小信息保存起来了,当程序启动调用了
readSettings(); // 初始窗口时读取窗口设置信息
读取保存的信息,所以出现了这个情况。 |
|