Domanda

I caricare un file da una posizione, quindi il prossimo upload ha per puntare l'ultima posizione caricata. Come posso realizzare utilizzando quindi QSettings?

È stato utile?

Soluzione

Prima di utilizzare QSettings, vorrei suggerire, nella vostra main() per impostare alcune informazioni sulla vostra applicazione e la vostra azienda, informazioni che QSettings sarà utilizzando:

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

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

Poi, quando si seleziona un file con QFile::getOpenFileName() (per esempio), si può leggere da una chiave di QSetting l'ultima directory. Quindi, se il file selezionato è valido, è possibile memorizzare / aggiornare il contenuto della chiave:

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

Altri suggerimenti

Se si sta parlando di QFileDialog () è possibile specificare la directory di partenza nel costruttore:

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

In alternativa è possibile utilizzare una delle funzioni di supporto come questo che consentono inoltre di specificare la directory di partenza:

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

Dopo ogni utilizzo, memorizzare il percorso della directory che è stato selezionato e usarlo la prossima volta che si visualizza la finestra di dialogo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top