使用QSettings存储qt应用程序的设置

Sha*_*fun 5 c++ qt qt4 qsettings

您好我已经使用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();
}
Run Code Online (Sandbox Code Playgroud)

这与窗口位置和大小一起工作正常.我使用qt的设计者在我的应用程序中添加了一些小部件,我也希望保存它们的状态.

我的一个小工具是一个单选按钮,我称之为radioButtonbnw

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

什么是最佳做法?

Mas*_*ang 7

  1. 把它们放进去QButtonGroup.
  2. 用于QButtonGroup::setId为此组中的每个单选按钮设置Id.
  3. 保存已选中按钮的ID QButtonGroup::checkedId.
  4. QButtonGroup::button(id)在恢复时使用此按钮的指针,然后调用QAbstractButton::setChecked.

顺便说一句:如果你想保存主窗口工具栏和dockwidgets的当前状态,请使用QMainWindow::saveState.