QT编程 QDataStream保存QStringList数据

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

 

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

保存数据:

 

  
  
  
  
  1. void Dialog::on_mSave_clicked()  
  2. {  
  3.     QStringList m_List;  
  4.     for(int i=0;i<=ui->mList->count()-1;i++)  
  5.     {  
  6.         m_List << ui->mList->item(i)->text();  
  7.     }  
  8.     QString filename = QFileDialog::getSaveFileName(this,"save dialog");  
  9.     QFile file(filename);  
  10.     if(!file.open(QIODevice::WriteOnly))  
  11.     {  
  12.         return;  
  13.     }  
  14.     QDataStream qds(&file);  
  15.     qds << m_List;  

打开数据:
 

  
  
  
  
  1. void Dialog::on_mOpen_clicked()  
  2. {  
  3.     QStringList m_List;  
  4.     QString filename = QFileDialog::getOpenFileName(this,"open dialog");  
  5.     QFile file(filename);  
  6.     if(!file.open(QIODevice::ReadOnly))  
  7.     {  
  8.         return;  
  9.     }  
  10.     QDataStream qds(&file);  
  11.     qds >> m_List;  
  12.     ui->mList->insertItems(0,m_List);  

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

你可能感兴趣的:(qt,QT编程)