为QFileDialog设置默认的UNC路径

时间:2020-06-20 12:15:42

标签: c++ qt

我想用特定路径打开QFileDialog,例如:// Machine / C $ / Users /。我实现了以下功能,但是不起作用。

void DownloadFM::on_pushButtonSource_clicked()
{
    QFileDialog o_dialogSource;
    o_dialogSource.setDirectory(absolutePath);
    QString fileName = QFileDialog::getOpenFileName(this, "Choose File");

    if(fileName.isEmpty())
        return;

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

2 个答案:

答案 0 :(得分:1)

例如,如果要在桌面位置打开对话框,请执行以下操作:

    QString fileName = QFileDialog::getOpenFileName(this, "Choose File",QStandardPaths::writableLocation(QStandardPaths::DesktopLocation));

请注意,您必须#include <QStandardPaths>

答案 1 :(得分:0)

此代码

QFileDialog o_dialogSource;
o_dialogSource.setDirectory(absolutePath);

还有这个

QString fileName = QFileDialog::getOpenFileName(this, "Choose File");

是完全独立的。前者创建一个本地对话框对象,在其中设置路径,并且...从不显示该对话框。后者会创建另一个对话框(确实会出现在屏幕上),并将第三个参数的默认值传递为const QString &dir=QString()(请参见this function documentation),从而不会设置所需的路径

正确的方法是删除无用的o_dialogSource行,然后将必要的参数添加到getOpenFileName调用中:

QString fileName = QFileDialog::getOpenFileName(this, "Choose File", absolutePath);