Qt_IM_12 - 8BitsCoding/RobotMentor GitHub Wiki


#include <QtCore/QCoreApplication>

#include <qdebug.h>
#include <qsettings.h>
#include <qstringlist.h>
#include <qrandom.h>

void saveAge(QSettings* setting, QString group, QString name, int age) {
	setting->beginGroup(group);
	setting->setValue(name, age);
	setting->endGroup();
}

int getAge(QSettings* setting, QString group, QString name) {
	setting->beginGroup(group);

	if (!setting->contains(name)) {
		qWarning() << "Does not contain" << name << " in" << group;
		setting->endGroup();
		return 0;
	}

	bool ok;
	int value = setting->value(name).toInt(&ok);
	setting->endGroup();

	if (!ok) {
		qWarning() << "Failed to convert at int!!!";
		return 0;
	}

	return value;
}

int main(int argc, char* argv[])
{
	QCoreApplication a(argc, argv);

	QCoreApplication::setOrganizationName("voidrealms");
	QCoreApplication::setOrganizationDomain("VoidRealms.com");
	QCoreApplication::setApplicationName("Tester");

	QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());

	saveAge(&settings, "people", "Bryan", 44);
	saveAge(&settings, "bear", "twoheart", 1);
	saveAge(&settings, "bear", "Bryan", 2);


    // 여기서 부터 childgroup 관련
	QStringList people;
	people << "Bryan" << "Tammy" << "Heather" << "chris";

	foreach(QString person, people) {
		int value = QRandomGenerator::global()->bounded(100);
		saveAge(&settings, "test", person, value);
	}

	// Ensure it saved!
	settings.sync();

	qInfo() << settings.fileName();
	// Window의 경우 레지스트리 정보
	// UNIX 계열의 경우 파일정보가 나타난다.

	foreach(QString group, settings.childGroups()) {
		settings.beginGroup(group);
		qInfo() << "Group : " << group;
		foreach(QString key, settings.childKeys()) {
			qInfo() << "... key: " << key << " = " << settings.value(key).toString();
		}
		settings.endGroup();
	}

	return a.exec();
}

이미지

⚠️ **GitHub.com Fallback** ⚠️