我有点像新手,我无法得到保存和加载工作。 该程序有一些单选按钮和旋转框,我希望能够将这些位置和值保存到文件中,并能够在以后再次打开它。 这是保存:
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);
}
}
我知道我做的事情非常错误,所以非常感谢一个很好的例子。
答案 0 :(得分:6)
答案 1 :(得分: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();
}