书上是这样描述QDataStream的:QDataStream提供了一种与运行平台无关的存储格式,他不仅支持QList<T>和QMap<K,T>等QT容器类,还支持整型和双精度型等基本的c++类,以及其他许多种qt数据类型,诸如QByteArray、QFont、QImage、QPixmap、QString和QVariant.
然而我在QListWidgetItem、QTreeWidgetItem等中都找到了void QListWidgetItem::read ( QDataStream & in ) ,那么可以认为它直接能够保存item,这样就可以在一些额界面中省下很多转换来转换去的代码,直接使用就行了。
下面就是我自己写的一个例子:
存文件:
1 2 3 4 5 6 7 8 |
QListWidgetItem *item; QFile file(“file.dat”); file.open(QIODevice::WriteOnly); if(QDataStream out(&file)) { item=ui->listWidget->item(0); out << *item; } |
读文件:
1 2 3 4 5 6 7 8 |
QListWidgetItem *item = new QListWidgetItem (); QFile file(“file.dat”); if(file.open(QIODevice::ReadOnly)) { QDataStream in(&file); in >> *item; ui->listWidget->addItem(item); } |
这样就很方便了,qt很给力!
发表评论
要发表评论,您必须先登录。