Как добавить файл App.Config в консольное приложение

Я хочу сохранить строку подключения и некоторые параметры в файле app.config, который мы обычно делаем для приложений Windows, но я не могу найти файл app.config для консольного приложения. Итак, как я должен использовать этот файл, как добавить этот файл или есть какие-то другие работы для той же функциональности. Как я могу сделать это, используя QSettings?

Я загружаю файл из местоположения, затем при следующей загрузке необходимо указать последнее загруженное местоположение. Как я могу сделать это, используя QSettings ?

6
задан Stargateur 7 February 2017 в 13:00
поделиться

2 ответа

Перед использованием 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 + "'");
    }
}
21
ответ дан 8 December 2019 в 05:52
поделиться

Если вы говорите о 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)

После каждого использования сохраните выбранный путь к каталогу и используйте его при следующем отображении диалогового окна.

1
ответ дан 8 December 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: