2010-08-30 14 views

Antwort

18

Vor QSettings verwenden, würde ich in Ihrem main() vorschlägt, ein paar Informationen über Ihre Anwendung und Ihr Unternehmen zu setzen, Informationen, die QSettings verwenden werden:

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    a.setApplicationName("test"); 
    a.setOrganizationName("myorg"); 
    a.setOrganizationDomain("myorg.com"); 

    // etc... 
    return a.exec(); 
} 

Dann, wenn eine Datei mit QFile::getOpenFileName() Auswahl (zum Beispiel), können Sie von einem Schlüssel von QSetting das letzte Verzeichnis lesen. Wenn die ausgewählte Datei dann gültig ist, können Sie den Inhalt des Schlüssels speichern/aktualisieren:

void Widget::on_tbtFile_clicked() { 
    const QString DEFAULT_DIR_KEY("default_dir"); 

    QSettings MySettings; // Will be using application informations 
          // for correct location of your settings 

    QString SelectedFile = QFileDialog::getOpenFileName(
     this, "Select a file", MySettings.value(DEFAULT_DIR_KEY).toString()); 

    if (!SelectedFile.isEmpty()) { 
     QDir CurrentDir; 
     MySettings.setValue(DEFAULT_DIR_KEY, 
          CurrentDir.absoluteFilePath(SelectedFile)); 

     QMessageBox::information(
      this, "Info", "You selected the file '" + SelectedFile + "'"); 
    } 
} 
1

Wenn Sie QFileDialog sprechen() können Sie das Startverzeichnis im Konstruktor angeben:

QFileDialog::QFileDialog(QWidget * parent = 0, const QString & caption = 
    QString(), const QString & directory = QString(), const QString & filter = 
    QString()) 

Oder Sie eine der Hilfsfunktionen wie diese verwenden können, die auch ermöglicht es Ihnen, das Startverzeichnis angeben :

Speichern Sie nach jeder Verwendung den ausgewählten Verzeichnispfad, und verwenden Sie ihn bei der nächsten Anzeige des Dialogfelds.

+0

Ideen mit QSettings – user198725878