我的应用程序中有大量的qt变量(QString,QMap,QList等),我正在寻找最快,最简单的方法来保存和加载文件中的数据。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
如果您想实际保存本地文件,则应使用QSettings。
您可以轻松保存以下数据:
QList<QString> list = {"toto", "is it really working ?", "seems nice :)"};
QList<int> listInt = {3, 5, 8};
QList<QString> list2;
qRegisterMetaTypeStreamOperators<QList<QString> >("QList<QString>");
qRegisterMetaTypeStreamOperators<QList<int> >("QList<int>");
QSettings settings("Moose Soft", "Facturo-Pro", this);
settings.setValue("listData", QVariant::fromValue(list));
settings.setValue("listInt", QVariant::fromValue(listInt));
settings.setValue("test", 5);
list2 = settings.value("listData").value<QList<QString>>();
qDebug() << list;
qDebug() << list2;
qDebug() << settings.value("listInt").value<QList<int>>();
qDebug() << settings.value("test").value<int>();
我在这里创建了String
和int
的列表,因为它是我们需要使用qRegisterMetaTypeStreamOperators
来表示类型的特殊类型。
然后只需创建 QSettings 和写/读取值。请注意,一旦您执行了此操作,就会创建一个文件,您不再需要setValue
答案 1 :(得分:0)
您可以使用QDataStream http://doc.qt.io/qt-5/qdatastream.html#details序列化二进制数据以从QIODevice(例如QFile)保存/加载。有关所有支持的格式,请参阅http://doc.qt.io/qt-5/datastreamformat.html,包括QString,QMap ......