Qt 文件选项对话框弹出两次

Posted on 2019-11-19 23:32  RunnerAnt  阅读(1074)  评论(0编辑  收藏  举报

1 问题

​ 在Qt 5.12.0 版本中,用 QFileDialog 类来做文件选择时候,发现当弹出对话框后,选择完文件后,又弹出文件选择对话框。

2 原因查找

2.1 代码

    QFileDialog filedialog;
    filedialog.setAcceptMode(QFileDialog::AcceptOpen);
     filedialog.setFileMode(QFileDialog :: ExistingFiles);

     QStringList fileNames ;

    fileNames =filedialog.getOpenFileNames();

     if( filedialog.exec() == QFileDialog::Accepted   )
     {
          qDebug()<<"get file ";
        QStringList fileNames ;

       fileNames =filedialog.getOpenFileNames();

       for(int i=0;i<fileNames.length();i++)
             qDebug()<<fileNames[i];

     }

2.2 原因确定

通过 qDebug 打印得知 函数 :getOpenFileNames()有包含 exec()的作用

3 改成

    QFileDialog filedialog;
    filedialog.setAcceptMode(QFileDialog::AcceptOpen);
     filedialog.setFileMode(QFileDialog :: ExistingFiles);

     QStringList fileNames ;
    fileNames =filedialog.getOpenFileNames();

       for(int i=0;i<fileNames.length();i++)
             qDebug()<<fileNames[i];