QT编程 QDataStream保存QStringList数据

这里用QListwidget来演示打开与保存数据:

#include "dialog.h"
#include "ui_dialog.h"
#include <QFileDialog>
#include <QDataStream>
#include <QFile>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    QStringList m_List;
    for(int i=0;i<=23;i++)
    {
        m_List << tr("www.it165.net %1").arg(i);//首先初始一些数据用语保存
    }
    ui->mList->insertItems(0,m_List);
}

 保存数据:

void Dialog::on_mSave_clicked()
{
    QStringList m_List;
    for(int i=0;i<=ui->mList->count()-1;i++)
    {
        m_List << ui->mList->item(i)->text();
    }
    QString filename = QFileDialog::getSaveFileName(this,"save dialog");
    QFile file(filename);
    if(!file.open(QIODevice::WriteOnly))
    {
        return;
    }
    QDataStream qds(&file);
    qds << m_List;
}

 打开数据:

void Dialog::on_mOpen_clicked()
{
    QStringList m_List;
    QString filename = QFileDialog::getOpenFileName(this,"open dialog");
    QFile file(filename);
    if(!file.open(QIODevice::ReadOnly))
    {
        return;
    }
    QDataStream qds(&file);
    qds >> m_List;
    ui->mList->insertItems(0,m_List);
}

 用同样的方法还可以保存例如QMap等数据类型

下面是运行效果

 

posted @ 2012-06-19 13:09  无韵之歌  阅读(1001)  评论(0)    收藏  举报