2010-11-17 39 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