c++ - 如何在 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 ...");
}
}
解决方案
Qt 文档记录了如何执行此操作:
void UploadFM::on_pushButtonDestination_clicked()
{
const QString defaultPath = "//DC1/blabla...";
QString fileName = QFileDialog::getExistingDirectory(this, "Choose Folder", g_absolutePath, defaultPath);
...
}
推荐阅读
- html - 如何使用 webpack 提供图像?
- c# - 具有多个资源文件 (.resx) 的项目:图像不显示在 WinForms 设计器中
- sql - 加入表时如何使用postgres group by语句
- java - 将 Onclick 动画添加到 spannablestringbuilder 的跨区部分
- php - 当我在 codeigniter 中输入无效的验证码时,我没有看到错误消息
- javascript - 在页面中拖动的菜单
- java - 如何在 Java 7+ 中实现确定性 GC 暂停?
- java - 为什么activity_main.xml 没有在Android Studio 中显示我的组件,为什么28 API 不起作用?
- python - 如何检查单元格中的值是否在范围内。基于将不同的“分数”分配给新列
- java - Vert.x Auth JWT 中的身份验证失败原因