Carico un file da una posizione, quindi il caricamento successivo deve puntare l'ultima posizione caricata. Come posso realizzare in tal modo utilizzando QSettings
?QImpostazioni - Il selettore file dovrebbe ricordare l'ultima directory
risposta
Prima di utilizzare QSettings
, vorrei suggerire, nella vostra main()
per impostare alcune informazioni sulla vostra applicazione e la vostra azienda, informazioni che QSettings
prevede di utilizzare:
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), puoi 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 + "'");
}
}
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())
oppure è 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.
qualsiasi idea con l'utilizzo di QSettings – user198725878