QSettings - 文件选择器应该记住最后一个目录

use*_*878 6 qt qsettings

我从某个位置上传文件,然后下次上传必须指向上次上传的位置.我怎样才能完成这样的使用QSettings

Jér*_*ôme 21

在使用之前QSettings,我建议您main()在设置有关您的应用程序和公司的一些信息时QSettings使用以下信息:

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

    // etc...
    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

然后,当选择具有QFile::getOpenFileName()(例如)的文件时,您可以从QSetting最后一个目录的键中读取.然后,如果所选文件有效,则可以存储/更新密钥的内容:

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 + "'");
    }
}
Run Code Online (Sandbox Code Playgroud)