gpt4 book ai didi

c++ - 如何获取QFileDialog最新的历史路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:31 28 4
gpt4 key购买 nike

我在 Qt 4.8.5 和 Windows 7 上工作,我有一个调用模态 QFileDialogSLOT,就像:

QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::Directory);
if (fileDialog.exec()) {
// blah blah
}

我注意到 QFileDialog 会自动保留最近的路径,无论何时构造它,即使我重新启动主程序,它也能够显示最新的路径。

但我不知道 Qt 将状态保存在哪里,我想在不打开 QFileDialog 的情况下获取最新路径作为 QString。有谁知道如何实现这一点?

最佳答案

我已经从 Qt 源代码中提取了代码。如您所见,此信息存储在用户范围的 QSettings 中。在 Windows 上,它位于注册表项下:HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt。这是要使用的代码:

QSettings settings(QSettings::UserScope, QLatin1String("Trolltech"));
settings.beginGroup(QLatin1String("Qt"));
QByteArray p = settings.value(QLatin1String("filedialog")).toByteArray();

QDataStream stream(&p, QIODevice::ReadOnly);
QByteArray splitterState;
QList<QUrl> bookmarks;
QStringList history;
QString currentDirectory;
qint32 marker;
qint32 v;

stream >> marker
>> v
>> splitterState
>> bookmarks
>> history
>> currentDirectory; // <-- The recent path.

请注意,这可以在下一个 Qt 版本中更改。

关于c++ - 如何获取QFileDialog最新的历史路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604692/

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