2019独角兽企业重金招聘Python工程师标准>>>
转载于:https://my.oschina.net/osyunwei/blog/718726#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);organization &#61; "QtProject";application &#61; "OrganizationDefaults";ui->treeWidget->setColumnCount(2);ui->treeWidget->setHeaderLabels(QStringList()<treeWidget->setColumnWidth(0,260);readSetting();//读取注册表
}void Dialog::readSetting()
{QSettings settings(organization,application);//读取注册表ui->treeWidget->clear();//清除树addChildSettings(settings,0,"");ui->treeWidget->sortByColumn(0);ui->treeWidget->setFocus();//设置焦点this->setWindowTitle(tr("Settings Viewer -%1 by %2").arg(application).arg(organization));
}void Dialog::addChildSettings(QSettings &settings, QTreeWidgetItem *parent, const QString &group)
{if(!parent)parent&#61; ui->treeWidget->invisibleRootItem();//找树根QTreeWidgetItem *item;settings.beginGroup(group);foreach(QString key,settings.childKeys()){item &#61; new QTreeWidgetItem(parent);//添加到树根上item->setText(0,key);item->setText(1,settings.value(key).toString());}foreach (QString group,settings.childGroups() ){item &#61; new QTreeWidgetItem(parent);item->setText(0,group);addChildSettings(settings,item,group);//递归调用}settings.endGroup();}Dialog::~Dialog()
{delete ui;
}#ifndef DIALOG_H
#define DIALOG_H#include
#include
#include
namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent &#61; 0);~Dialog();private:void readSetting();void addChildSettings(QSettings &settings,QTreeWidgetItem *item,const QString &group);
private:Ui::Dialog *ui;QString organization;QString application;
};#endif // DIALOG_H