Bonjour,
Je rencontre actuellement un problème lors de l'éxécution de mon programme.
J'ai des objet personnel (ChannelObjectSerializable) dont je souhaite sauvegarder l'état.
J'ai suivis un tutoriel, tout compile comme il faut, mais cela foire à l'exécution.
Voici les morceaux de code intéressant :
J'obtient donc :
Avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 QVariant::load:*unable*to*load*type*256. QVariant::save:*unable*to*save*type*256. QVariant::load:*unable*to*load*type*256.
ChannelObjectSerilizable.h
ChannelObjectSerializable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private: friend QDataStream & operator << (QDataStream &, const ChannelObjectSerializable &); friend QDataStream & operator >> (QDataStream &, ChannelObjectSerializable &); }; Q_DECLARE_METATYPE(ChannelObjectSerializable) QDataStream & operator << (QDataStream & out, const ChannelObjectSerializable & Valeur); QDataStream & operator >> (QDataStream & in, ChannelObjectSerializable & Valeur);
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 QDataStream & operator<<(QDataStream & out, const ChannelObjectSerializable & Valeur) { QString tmp; out << tmp.fromStdString(Valeur.nom) << tmp.fromStdString(Valeur.lastUpdate) << tmp.fromStdString(Valeur.description) << tmp.fromStdString(Valeur.lien) << tmp.fromStdString(Valeur.link); return out; } QDataStream & operator>>(QDataStream & in, ChannelObjectSerializable & Valeur) { QString tmp; in >> tmp; Valeur.nom = tmp.toStdString(); in >> tmp; Valeur.lastUpdate = tmp.toStdString(); in >> tmp; Valeur.description = tmp.toStdString(); in >> tmp; Valeur.lien = tmp.toStdString(); in >> tmp; Valeur.link = tmp.toStdString(); return in; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ChannelObjectSerializable p = ChannelObjectSerializable(newRSS); QSettings fichier_ecrire("Test.ini", QSettings::IniFormat); fichier_ecrire.setValue("channel", qVariantFromValue(p)); p.printDonnees(); fichier_ecrire.sync(); ChannelObjectSerializable copie; QSettings fichier_lire("Test.ini", QSettings::IniFormat); copie = fichier_lire.value("channel", qVariantFromValue(ChannelObjectSerializable())).value<ChannelObjectSerializable>(); copie.printDonnees();
Partager