gpt4 book ai didi

c++ - QFileDialog 的多个实例的历史

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:39 26 4
gpt4 key购买 nike

我在我的C++ 应用程序中使用QT。我知道当我使用 QFileDialog 时,历史记录保存在注册表中。假设我在应用程序中有多个 QFileDialog 实例。我可以分别保存每个实例的历史记录吗?据我检查,似乎每个实例都更新了相同的注册表项。

最佳答案

您可以为每个 QFileDialog 实例使用不同的 QSettings 条目,用它来管理您的历史长度和位置。

类似的东西

void callFileDialog(QLinkedList<QString> & fileDialogHistory)
{
QString fileName = QFileDialog::getOpenFileName(Q_NULLPTR, "Open File",
QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
if(!fileName.isNull()){
fileDialogHistory << fileName;
}
}

void saveFileDialogHistory(QLinkedList<QString> & fileDialogHistory, QString
fileDialogHistoryName = "History_Default")
{
QSettings settings;
settings.beginWriteArray(fileDialogHistoryName);
int index = 0;
for (QLinkedList<QString>::iterator it = fileDialogHistory.begin(); it != fileDialogHistory.end(); ++it){
settings.setArrayIndex(index);
settings.setValue("filePath", QFileInfo(*it).filePath());
index++;
}
settings.endArray();
}

关于c++ - QFileDialog 的多个实例的历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46701386/

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