1

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

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);
 }
}

我知道我做错了什么,所以一个很好的例子将不胜感激。

4

2 回答 2

6

QMainWindow文档指出:

保存此主窗口工具栏停靠小部件的当前状态。

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

于 2012-06-07T13:09:57.230 回答
1

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();
 }
于 2012-06-12T05:18:39.963 回答