Qt 文件对话框在重新启动项目后不记得最后一个目录

Qt File Dialog doesn't remember the last directory after restarting project

我正在为我的项目加载一些文件....但每次 fileDialog 目录都是我的根目录...

我希望 fileDialog 记住我的路径,我已经尝试了以下 link qsettings-file-chooser-should-remember-the-last-directory 中的解决方案,但这只对同一个会话有效。

有没有办法为其他会话保存目录?(关闭应用程序并重新打开时)?

您可以使用 QSettings class。
这是一个简单的例子:
widget.h

#define WIDGET_H

#include <QWidget>
#include <QSettings>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QString lastDir;
    QSettings *settings;
    void settingsLoader();
    void settingsSaver();
};

#endif // WIDGET_H

widget.cpp

#include <QFileDialog>
#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    settings = new QSettings("MyCompany", "My soft name", this);
    settingsLoader();
    lastDir = QFileDialog::getExistingDirectory(this, tr("Open directory"), lastDir);
}

void Widget::settingsLoader()
{
    lastDir = settings->value("LastDir", QDir::homePath()).toString();
}

void Widget::settingsSaver()
{
    settings->setValue("LastDir", lastDir);
}

Widget::~Widget()
{
    settingsSaver();
}