我希望使用特定路径打开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);
}
例如,如果要在桌面位置打开对话框,请执行以下操作:
QString fileName = QFileDialog::getOpenFileName(this, "Choose File",QStandardPaths::writableLocation(QStandardPaths::DesktopLocation));
请注意,您必须#include
此代码
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);