记住上次打开的路径:
QSettings setting;
QString LastPath = setting.value("kaeConfPath").toString();
QString AbsPath = QFileInfo(LastPath).absolutePath();
QDir lastDir(AbsPath);
if (LastPath.isEmpty()) { //路径为空
LastPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
} else if (!lastDir.exists()) { //文件夹不存在
bool rec = lastDir.mkpath(AbsPath);
if (!rec) { //创建失败,无权限
LastPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
}
}
QString kaeConfPath = QFileDialog::getExistingDirectory(
this, tr("选择文件夹"), LastPath, QFileDialog::DontResolveSymlinks | QFileDialog::DontUseNativeDialog);
if (kaeConfPath.isEmpty()) {
return;
}
setting.setValue("kaeConfPath", kaeConfPath);
setting.sync();
打开文件:
QString newpath = QFileDialog::getOpenFileName(this, tr("选择 DBC 文件"), path,
tr("Vector Informatik GmbH database file (*.dbc)"), nullptr,
QFileDialog::DontResolveSymlinks | QFileDialog::DontUseNativeDialog);
打开文件夹:
QString pdfCurPath = QFileDialog::getExistingDirectory(
this, tr("选择文件夹"), LastPath, QFileDialog::DontResolveSymlinks | QFileDialog::DontUseNativeDialog);