Ich lade eine Datei von einem Ort hoch, dann muss der nächste Upload den zuletzt hochgeladenen Ort zeigen. Wie kann ich dies mit QSettings
erreichen?QSettings - Dateiwähler sollte sich das letzte Verzeichnis merken
Antwort
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 + "'");
}
}
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.
Ideen mit QSettings – user198725878