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];