将Qt应用程序的状态保存到文件中

我有点新手,我不能保存加载工作。 该程序有一些单选button和旋转框,我希望能够将这些位置和值保存到一个文件,并能够稍后再打开它。 这是节省:

void MainWindow::on_saveButton_clicked() { QString fileName = QFileDialog::getSaveFileName(this, tr("Salvesta Projekt"), "", tr("Latid Pindalaks (*.lp);;All Files (*)")); if (fileName.isEmpty()) return; else { QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } QDataStream out(&file); out.setVersion(QDataStream::Qt_4_8); QByteArray MyArray = MainWindow::saveState(); out << (MyArray); } } 

这里是加载

 void MainWindow::on_loadButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Ava Projekt"), "", tr("Latid Pindalaks (*.lp);;All Files (*)")); if (fileName.isEmpty()) return; else { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::information(this, tr("Pole võimalik faili laadida"), file.errorString()); return; } QDataStream in(&file); in.setVersion(QDataStream::Qt_4_8); in >> (MyArray); MainWindow::restoreState(MyArray); } } 

我知道我正在做一些非常错误的事情,所以一个很好的例子将非常感激。

Solutions Collecting From Web of "将Qt应用程序的状态保存到文件中"

QMainWindow文档指出:

保存这个主窗口的工具栏dockwidgets的当前状态。

这意味着你必须自己保存和其他小部件(单选按钮和什么)的状态。

QSettings通常用于存储GUI应用程序的状态。 以下示例说明如何使用QSettings来保存和恢复应用程序主窗口的几何图形。

  void MainWindow::writeSettings() { QSettings settings("Moose Soft", "Clipper"); settings.beginGroup("MainWindow"); settings.setValue("size", size()); settings.setValue("pos", pos()); settings.endGroup(); } void MainWindow::readSettings() { QSettings settings("Moose Soft", "Clipper"); settings.beginGroup("MainWindow"); resize(settings.value("size", QSize(400, 400)).toSize()); move(settings.value("pos", QPoint(200, 200)).toPoint()); settings.endGroup(); }