मैं QSettings के माध्यम से रजिस्ट्री में एक कस्टम वर्ग के उदाहरण संग्रहीत करने की आवश्यकता को पढ़ने कस्टम वर्ग। क्यूटी के दस्तावेज़ से पढ़ने के बाद, मुझे लगता है कि मैं जरूरत कार्यों को लागू किया है, लेकिन मैं कुछ भी बचाने के लिए प्रबंधित नहीं करते।लेखन और QSettings
class SRSDefinition{
public:
SRSDefinition(QString name, QString definition) : qsName(name), qsDefinition(definition)
{
qRegisterMetaType<SRSDefinition>("SRSDefinition");
qRegisterMetaTypeStreamOperators<SRSDefinition>("SRSDefinition");
}
SRSDefinition(const SRSDefinition& original) : qsName(original.qsName), qsDefinition(original.qsDefinition) {}
SRSDefinition() : qsName(""), qsDefinition(""){}
~SRSDefinition();
QString qsName;
QString qsDefinition;
private:
friend QDataStream& operator << (QDataStream& out, const SRSDefinition& valeur) {out << valeur.qsName << valeur.qsDefinition; return out; }
friend QDataStream& operator >> (QDataStream& in, SRSDefinition& valeur) {in >> valeur.qsName >> valeur.qsDefinition; return in;}
};
Q_DECLARE_METATYPE(SRSDefinition)
QDataStream& operator << (QDataStream& out, const SRSDefinition& Valeur);
QDataStream& operator >> (QDataStream& in, SRSDefinition& Valeur);
सहेजा जा रहा है रजिस्ट्री में: रजिस्ट्री से
QSettings settings("Organization", "Application");
QVariant variant;
variant.setValue(QVariant::fromValue<SRSDefinition>(m_srsSelected));
settings.setValue("Shared/RecentSRS", variant);
लोड हो रहा है:
QSettings settings("Organization", "Application");
m_srsSelected = settings.value("Shared/RecentSRS").value<SRSDefinition>();
रजिस्ट्री में एक नया कुंजी बनाई गई है, लेकिन
यहाँ मेरी कस्टम वर्ग है यह हेक्स कोड मुझे लगता है कि सिर्फ क्लास का नाम है शामिल हैं ... 012,
किसी भी विचार कैसे प्रभावी रूप से मान संग्रहीत करने के लिए?
दरअसल, बस चलती 'qRegisterMetaTypeStreamOperators (" SRSDefinition ");' मुख्य करने के लिए मेरी समस्या हल। बहुत बहुत धन्यवाद !!! –
Ote