10 QStringList << tr("Key") << tr("Value"));
11 treeWidget->header->setResizeMode(0, QHeaderView::Stretch);
12 treeWidget->header->setResizeMode(1, QHeaderView::Stretch);
13 …
14 setWindowTitle(tr("Settings Viewer"));
15 readSettings;
16 }
Для получения доступа к параметрам настройки приложения необходимо создать объект
01 void SettingsViewer::readSettings
02 {
03 QSettings settings(organization, application);
04 treeWidget->clear;
05 addChildSettings(settings, 0, "");
06 treeWidget->sortByColurnn(0);
07 treeWidget->setFocus;
08 setWindowTitle(tr("Settings Viewer - %1 by %2")
09 .arg(application).arg(organization));
10 }
Параметры настройки приложения хранятся в виде набора ключей и значений, имеющих иерархическую структуру. Закрытая функция
01 void SettingsViewer::addChildSettings(QSettings &settings,
02 QTreeWidgetItem *parent, const QString &group)
03 {
04 QTreeWidgetItem *item;
05 settings.beginGroup(group);
06 foreach (QString key, settings.childKeys) {
07 if (parent) {
08 item = new QTreeWidgetItem(parent);
09 } else {
10 item = new QTreeWidgetItem(treeWidget);
11 }
12 item->setText(0, key);
13 item->setText(1, settings.value(key).toString);
14 }
15 foreach (QString group, settings.childGroups) {
16 if (parent) {
17 item = new QTreeWidgetItem(parent);
18 } else {
19 item = new QTreeWidgetItem(treeWidget);
20 }
21 item->setText(0, group);
21 addChildSettings(settings, item, group);
22 }
23 settings.endGroup;
24 }
Функция
Затем эта функция выполняется для каждой группы текущего уровня. Для каждой группы создается новый объект