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

1 c++ windows qt loading save

我有点像新手,我无法得到保存和装载工作.该程序有一些单选按钮和旋转框,我希望能够将这些位置和值保存到文件中,并能够在以后再次打开它.这是节约:

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);
      }
 }
Run Code Online (Sandbox Code Playgroud)

这是装载

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);
 }
}
Run Code Online (Sandbox Code Playgroud)

我知道我做错了什么,所以非常感谢一个很好的例子.

Man*_*bes 6

QMainWindow文档指出:

保存此主窗口的工具栏dockwidgets的当前状态.

这意味着您必须自己保存其他小部件的状态(单选按钮和诸如此类的东西).