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];
05-11 09:39