gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:19:51 25 4
gpt4 key购买 nike

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

我希望 fileDialog 记住我的路径,我已经尝试了以下链接中的解决方案 qsettings-file-chooser-should-remember-the-last-directory但这仅对同一 session 对我有用。

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

最佳答案

您可以使用 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

小部件.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();
}

关于c++ - Qt 文件对话框在重新启动项目后不记得最后一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com