首页 > 解决方案 > 如何在 QT 中使用 QFileDialog 打开特定目录

问题描述

我想打开QFileDialog一个特定的路径,比如//DC1/C$/Users/但是当QFileDialog打开它时它会转到默认路径。QFileDialog打开时,我可以将目录更改为UNC路径,但我想默认打开此路径。我怎样才能做到这一点?在以下代码中,g_absolutePath 已使用//DC1/C$/Users/进行初始化,但它不起作用。

#include "uploadfm.h"
#include "ui_uploadfm.h"

#include "mainwindow.h"

UploadFM::UploadFM(QWidget *parent) : QMainWindow(parent), ui(new Ui::UploadFM)
{
    ui->setupUi(this);
    QWidget::setFixedSize(600, 175);
}

UploadFM::~UploadFM()
{
    delete ui;
}

void UploadFM::on_pushButtonSource_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this, "Choose File", g_absolutePath);

    if(fileName.isEmpty())
        return;

    ui->lineEditSourcePath->setText(fileName);
}

void UploadFM::on_pushButtonDestination_clicked()
{
    QString fileName = QFileDialog::getExistingDirectory(this, "Choose Folder", g_absolutePath);

    if(fileName.isEmpty())
        return;

    ui->lineEditDestinationPath->setText(fileName);
}

void UploadFM::on_pushButtonUpload_clicked()
{
    QString l_sourceFileName = ui->lineEditSourcePath->text();
    QString l_destinationFileName = ui->lineEditDestinationPath->text();

    if(l_sourceFileName.isEmpty() || l_destinationFileName.isEmpty())
        return;

    QFile file(l_sourceFileName);

    if(file.copy(l_destinationFileName))
    {
        statusBar()->showMessage("Upload has been Successful ... ");
    }
    else
    {
        statusBar()->showMessage("Upload has failed ...");
    }
}

标签: c++qt

解决方案


Qt 文档记录了如何执行此操作:

void UploadFM::on_pushButtonDestination_clicked()
{
    const QString defaultPath = "//DC1/blabla...";
    QString fileName = QFileDialog::getExistingDirectory(this, "Choose Folder", g_absolutePath, defaultPath);
   ...
}

推荐阅读