Qt getSaveFileName

獲取保存文件名
getSaveFileNameui

1     QString strSaveName = QFileDialog::getSaveFileName(this, 2                                                        tr("保存的文件"), 3                                                        tr("demo.a.txt"), 4                                                        tr("Items files(*.items)"));

在這裏插入圖片描述

 1 //保存全部條目到文件
 2 void MainWindow::on_pushButtonSave_clicked()  3 {  4     QString strSaveName = QFileDialog::getSaveFileName(  5                                                             this,  6                                                             tr("保存的文件"),  7                                                             tr("."),  8                                                             tr("Items files(*.items)")  9  ); 10     myDebug("strSaveName",strSaveName); 11 
12     //判斷文件名
13    if( strSaveName.isEmpty() ) 14  { 15        return; 16  } 17 
18    //打開要寫入的文件
19  QFile fileSave(strSaveName); 20    myDebug("strSaveName",strSaveName); 21    if( ! fileSave.open( QIODevice::WriteOnly )) 22  { 23        //沒法打開要寫入的文件
24        QMessageBox::warning(this, tr("打開寫入文件"), 25                             tr("打開要寫入的文件失敗,請檢查文件名和是否具備寫入權限!")); 26        return; 27  } 28 
29 
30    //建立數據流
31    QDataStream dsOut(&fileSave); 32    //先寫入列表條目計數
33    qint32 nCount = ui->listWidget->count(); 34    myDebug("nCount",nCount); 35    dsOut << nCount; //沒有回車 36    //dsOut << nCount << endl;//有回車 37    //逐個寫入條目
38    for(qint32 i=0; i < nCount; i++) 39  { 40        QListWidgetItem *theItem = ui->listWidget->item(i); 41        dsOut<< *theItem;   //把條目對象寫入數據流,不是寫指針數值 42        //數據流僅寫入條目通用數據,條目的非通用數據不寫入,好比條目的標誌位不寫
43  } 44    //寫入完畢
45 }
相關文章
相關標籤/搜索