Chcę zapisać QList<int>
do mojego QSettings bez przechodzenia przez niego.
wiem, że mogę używać writeArray() i pętli, aby zapisać wszystkie przedmioty lub napisać qlist do QByteArray i zapisać to, ale to nie jest czytelny dla człowieka w moim pliku INI ..Zapisz QList <int> na QSettings
Obecnie używam następujące przekształcić mój QList<int>
do QList<QVariant>
:
QList<QVariant> variantList;
//Temp is the QList<int>
for (int i = 0; i < temp.size(); i++)
variantList.append(temp.at(i));
i zbawić to QList<Variant>
do moich ustawień używam następujący kod:
QVariant list;
list.setValue(variantList);
//saveSession is my QSettings object
saveSession.setValue("MyList", list);
qlist jest poprawnie zapisany mój plik INI, jak widzę (przecinek rozdzielona lista moich int)
Ale funkcja zawiesza się przy wyjściu.
Próbowałem już użyć wskaźnika do moich QSettings obiekt zamiast ale potem wywala to na usuwanie wskaźnik ..
Co nie rozumiem jest to, że w celu stworzenia ty 'QVariant' listy, którą za pośrednictwem pętli' int' liście, który właśnie ty staraj się unikać. Czy czegoś brakuje? – gregseth
Nie. Pomyślałem, że mogę bezpośrednio zapisać mój QList, ale wydaje się, że działa tylko z QList .. Rzeczą, której chcę uniknąć, jest zapisanie listy za pomocą metody writeArray, ponieważ lista powinna być zapisana w innym poleceniu writeArray i Nie wiem, czy to zadziała .. –
Tobias
Uświadomiłem to teraz jako QString .. Zamiast pętli przez moje QList, aby utworzyć QList dołączam wartości do QString (oddzielone przecinkami), jak mi się podoba, aby pokazać je w Plik INI i na Wczytaj I dzielę ciąg (według ",") i ponownie twoją QList . –
Tobias