2017-10-12 10 views
5

के कई उदाहरणों का इतिहास मैं अपने C++ एप्लिकेशन में QT का उपयोग कर रहा हूं। मुझे पता है कि जब मैं QFileDialog का उपयोग करता हूं, तो इतिहास रजिस्ट्री में सहेजा जाता है। मान लीजिए कि मेरे पास आवेदन के भीतर QFileDialog के कई उदाहरण हैं। क्या मैं प्रत्येक उदाहरण के लिए इतिहास को अलग से सहेज सकता हूं? जहां तक ​​मैंने चेक किया है, ऐसा लगता है कि प्रत्येक इंस्टेंस के लिए एक ही रजिस्ट्री प्रविष्टि अपडेट की जाती है।QFileDialog

उत्तर

2

आप प्रत्येक 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(); 
} 
+0

की तरह क्या आप कृपया एक छोटा सा उदाहरण के साथ मदद कर सकते हैं – Jackzz

+0

आप अपने मूल उपयोग http://doc.qt.io/qt-5/qsettings.html# साथ क्यूटी documention का पालन कर सकता है मूल उपयोग –

+0

मूल उपयोग के बाद आप अनुभाग foreach QFileDialog का उपयोग उदाहरण के लिए http://doc.qt.io/qt-5/qsettings.html#section-and-key-syntax –

संबंधित मुद्दे