Qt File Dialog не запоминает последний каталог после перезапуска проекта - PullRequest
0 голосов
/ 15 мая 2018

Я загружаю некоторые файлы для своего проекта .... но каждый раз, когда каталог fileDialog является моим корневым каталогом ...

Я хочу, чтобы fileDialog запомнил мой путь, и я попробовал решение по следующей ссылке qsettings-file-chooser-should-Remember-Last-Directory , но это помогло мне только тот же сеанс.

Есть ли способ сохранить каталог для других сеансов? (При закрытии приложения и его повторном открытии)?

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете использовать класс QSettings.
Это простой пример:
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();
}
...