5
我在我的C++
應用程序中使用QT
。我知道當我使用QFileDialog
時,歷史記錄保存在註冊表中。假設我在應用程序中有多個QFileDialog
實例。我可以分別保存每個實例的歷史記錄嗎?據我檢查,似乎相同的註冊表項更新爲每個實例。QFileDialog的多個實例的歷史
我在我的C++
應用程序中使用QT
。我知道當我使用QFileDialog
時,歷史記錄保存在註冊表中。假設我在應用程序中有多個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();
}
可以請你一個小例子幫助 – Jackzz
你可以按照Qt的機制的文檔與他們的基本用法http://doc.qt.io/qt-5/qsettings.html#基本用法 –
基本用法之後,您可以使用部分foreach QFileDialog,例如http://doc.qt.io/qt-5/qsettings.html#section-and-key-syntax –