打开文件对话框和选择文件对话框

1. 打开文件

  • 简单用法,直接调用静态方法
    QString fileName = QFileDialog::getOpenFileName(this);
    if (!fileName.isEmpty())
    {
        // todo   
    }
  • 进阶用法1,可设置默认过滤器
    QString strDir = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); // 文件夹路径,另外"."是运行目录,"/" 是当前盘符的根目录
    QString strFilter = "JPEG Files(*.jpg);;PNG Files(*.png);;All Files(*.*)"; // 使用;;分隔
    QString selectedFilter = strFilter.split(";;")[1]; // 默认的过滤器,返回会更新为最终选择的过滤器,此处是PNG Files(*.png)

    QString fileName = QFileDialog::getOpenFileName(this, "打开文件", strDir, strFilter, &selectedFilter);
    if (fileName.isEmpty())
    {
        return;
    }

    if (selectedFilter == "JPEG Files(*.jpg)")
    {
        qDebug() << selectedFilter;
    }
    else if (selectedFilter == "PNG Files(*.png)")
    {
        qDebug() << selectedFilter;
    }

  • 进阶用法2,创建类对象
    QFileDialog openFilePath(this);
    openFilePath.setWindowTitle(tr("请选择文件"));
    openFilePath.setDirectory(".");
    openFilePath.setNameFilter("JPEG Files(*.jpg);;PNG Files(*.png);;All Files(*.*)");
    if(openFilePath.exec() == QDialog::Accepted)
    {
        //todo
    }

2.打开多个文件

    QStringList files = QFileDialog::getOpenFileNames(this);
    if (!files .isEmpty())
    {
        // todo
    }

3.选择文件夹

    QFileDialog openFilePath(this, "选择文件夹", "file");
    openFilePath.setFileMode(QFileDialog::DirectoryOnly);
    if(openFilePath.exec() == QDialog::Accepted)
    {
        // todo
    }

4.保存文件

    QString fileName = QFileDialog::getSaveFileName(this);
    if (!fileName.isEmpty())
    {
        // todo
    }
posted @ 2025-04-18 09:55  上车去广西  阅读(56)  评论(0)    收藏  举报