欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-08 17:50:58
1 问题 ​ 在Qt 5.12.0 版本中,用 QFileDialog 类来做文件选择时候,发现当弹出对话框后,选择完文件后,又弹出文件选择对话框。 2 原因查找 2.1 代码 2.2 原因确定 通过 qDebug 打印得知 函数 : getOpenFileNames()有包含 exec()的作用 ......

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