您好,我使用qt创建了一个应用程序,并设法使用QSettings保存了一些设置。

void DoneIt::writeSettings()
{
    QSettings settings("mycompany", "RightDoneIt");
    settings.beginGroup("DoneIt");
    settings.setValue("size", size());
    settings.setValue("pos", pos());
    settings.endGroup();
}

void DoneIt::readSettings()
{
    QSettings settings("mycompany", "RightDoneIt");
    settings.beginGroup("DoneIT");
    resize(settings.value("size", QSize(400, 400)).toSize());
    move(settings.value("pos", QPoint(200, 200)).toPoint());
    settings.endGroup();
}

在窗口位置和大小上都可以正常工作。
我已经使用qt的设计器在我的应用程序中添加了一些小部件,我也想保存它们的状态。

我的一个小部件是一个单选按钮,我称之为radioButtonbnw

如何保存其状态(选中或未选中)?

最佳做法是什么?

最佳答案

  • 将它们放到QButtonGroup中。
  • 使用QButtonGroup::setId可以为此组中的每个单选按钮设置ID。
  • 保存通过QButtonGroup::checkedId获取的选中按钮的ID。
  • 恢复时使用QButtonGroup::button(id)获取此按钮的指针,并调用QAbstractButton::setChecked

  • 顺便说一句:如果要保存mainwindow工具栏和dockwidgets的当前状态,请使用QMainWindow::saveState

    关于c++ - 使用QSettings存储qt应用程序的设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4201498/

    10-09 01:05