我想用特定路径打开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);
}
答案 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);