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();
}
よう
何かあなたはあなたが彼らの基本的な使い方http://doc.qt.io/qt-5/qsettings.html#でのQt、ドキュメントを参照して従うことができる小さな例 – Jackzz
で助けてください基本的な使い方 –
基本的な使い方の後、セクションforeach QFileDialog、例えばhttp://doc.qt.io/qt-5/qset-5.qt-/qsettings.html#section-and-key-syntaxを使用することができます –