2017-10-12 18 views
5

QTC++ uygulamasında kullanıyorum. QFileDialog kullandığımda, tarih kayıt defterinde kaydedilir biliyorum. Uygulamanın içinde birden fazla örnek var: QFileDialog. Her bir durum için geçmişi ayrı ayrı kaydedebilir miyim? Kontrol ettiğim kadarıyla, her kayıt için aynı kayıt defteri girişi güncellenmiş görünüyor.QFileDialog'un birden çok örneğinin geçmişi

cevap

2

Her bir QFileDialog örneği için geçmiş uzunluğunuzu ve konumunuzu yönettiğiniz farklı QSettings girdisini kullanabilirsiniz. O

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(); 
} 
+0

gibi

şey mi Onların temel kullanım http://doc.qt.io/qt-5/qsettings.html# ile Qt Dokümantasyonunu takip edebilecek – Jackzz

+0

küçük örnekle yardım edebilir temel kullanım –

+0

Temel kullanımdan sonra QFileDialog foreach bölümünü kullanabilirsiniz. Örneğin http://doc.qt.io/qt-5/qsettings.html#section-and-key-syntax –

İlgili konular