2010-08-30 24 views

Respuesta

18

Antes de utilizar QSettings, sugeriría, en su main() configurar algunas informaciones sobre su aplicación y su empresa, información que QSettings va a utilizar:

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

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

Entonces, al seleccionar un archivo con QFile::getOpenFileName() (por ejemplo), puede leer desde una clave de QSetting el último directorio. Luego, si el archivo seleccionado es válido, puede almacenar/actualizar el contenido de la clave:

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

Si usted está hablando de QFileDialog() Puede especificar el directorio inicial en el constructor:

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

o puede utilizar una de las funciones de ayuda como ésta que también le permiten especificar el directorio de inicio :

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

Después de cada uso, almacenar la ruta del directorio que fue seleccionado y utilizarla la próxima vez que se muestra el cuadro de diálogo.

+0

ideas para usar QSettings – user198725878

Cuestiones relacionadas