Я хочу сохранить строку подключения и некоторые параметры в файле app.config, который мы обычно делаем для приложений Windows, но я не могу найти файл app.config для консольного приложения. Итак, как я должен использовать этот файл, как добавить этот файл или есть какие-то другие работы для той же функциональности. Как я могу сделать это, используя QSettings?
Я загружаю файл из местоположения, затем при следующей загрузке необходимо указать последнее загруженное местоположение.
Как я могу сделать это, используя QSettings
?
Перед использованием 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();
}
Затем, при выборе файла с помощью 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 + "'");
}
}
Если вы говорите о QFileDialog(), вы можете указать начальный каталог в конструкторе:
QFileDialog::QFileDialog(QWidget * parent = 0, const QString & caption =
QString(), const QString & directory = QString(), const QString & filter =
QString())
Или вы можете использовать одну из вспомогательных функций, подобных этой, которая также позволяет указать начальный каталог:
QString QFileDialog::getOpenFileName(QWidget * parent = 0,
const QString & caption = QString(), const QString & dir = QString(),
const QString & filter = QString(), QString * selectedFilter = 0,
Options options = 0)
После каждого использования сохраните выбранный путь к каталогу и используйте его при следующем отображении диалогового окна.