Question

envoyer un fichier à partir d'un emplacement, le prochain téléchargement doit pointer le dernier emplacement uploadé. Comment puis-je exécuter à l'aide ainsi QSettings?

Était-ce utile?

La solution

Avant d'utiliser QSettings, je suggère, dans votre main() définir quelques informations sur votre demande et votre entreprise, informations que QSettings utilisera:

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

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

Ensuite, lors de la sélection d'un fichier avec QFile::getOpenFileName() (par exemple), vous pouvez lire à partir d'une clé de QSetting le dernier répertoire. Ensuite, si le fichier sélectionné est valide, vous pouvez stocker / mettre à jour le contenu de la clé:

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 + "'");
    }
}

Autres conseils

Si vous parlez QFileDialog () vous pouvez spécifier le répertoire de départ dans le constructeur:

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

Vous pouvez également utiliser l'une des fonctions d'aide comme celui-ci qui vous permettent également de spécifier le répertoire de départ:

QString QFileDialog::getOpenFileName(QWidget * parent = 0,
    const QString & caption = QString(), const QString & dir = QString(), 
    const QString & filter = QString(), QString * selectedFilter = 0, 
    Options options = 0)

Après chaque utilisation, conservez le chemin du répertoire qui a été sélectionné et utiliser la prochaine fois que vous affichez la boîte de dialogue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top