2010-11-17 59 views
5

你好我已经使用qt创建了一个应用程序,并且我设法使用QSettings保存了它的一些设置。使用QSettings存储qt应用程序的设置

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

我如何保存其状态(选中或取消选中)?

什么是最佳实践?

回答

7
  1. 把它们放到QButtonGroup
  2. 使用QButtonGroup::setId为该组中的每个单选按钮设置Id。
  3. 保存检查按钮的ID得到QButtonGroup::checkedId
  4. 恢复时使用QButtonGroup::button(id)获取此按钮的指针,并致电QAbstractButton::setChecked

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

+0

请问,你能更精确一点吗?我第一次与QbuttonGroup打交道。 你能提供一些代码吗? 1000谢谢 – Sharethefun 2010-11-17 05:32:43

+0

对不起,我忙于我的项目,并没有现有的代码。 – 2010-11-23 04:43:49

+0

没问题:)这里是你的投票和分:)与你的项目祝你好运 – Sharethefun 2010-12-09 05:25:09

相关问题