Установите путь UN C по умолчанию для QFileDialog - PullRequest
0 голосов
/ 20 июня 2020

Я хотел открыть QFileDialog с указанным c путем, например: // 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 ]

1 голос
/ 20 июня 2020

Например, если вы хотите открыть диалоговое окно на рабочем столе, сделайте следующее:

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

Обратите внимание, что вы должны #include <QStandardPaths>

0 голосов
/ 20 июня 2020

Этот код

QFileDialog o_dialogSource;
o_dialogSource.setDirectory(absolutePath);

и этот

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

полностью независимы. Первый создает объект локального диалога, устанавливает в нем путь и ... никогда не показывает диалог. Последний создает другое диалоговое окно , которое появляется на экране, передавая значение по умолчанию для третьего аргумента как const QString &dir=QString() (см. эту документацию по функции ), таким образом не задавая путь, который вы требуется.

Правильный способ - удалить бесполезные строки o_dialogSource, а затем добавить необходимый аргумент к вызову getOpenFileName:

QString fileName = QFileDialog::getOpenFileName(this, "Choose File", absolutePath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...