Qt getSaveFileName

获取保存文件名
getSaveFileName

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 }

 

原文地址:https://www.cnblogs.com/ybqjymy/p/13897702.html