Могу ли я прочитать из файла.ini, который находится в файлах ресурсов?

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSettings>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QSettings * qsettings = new QSettings(":/config.ini",QSettings::IniFormat);
    bool status = qsettings->value("preview","").toBool();
    qDebug() << status;

}

MainWindow::~MainWindow()
{
    delete ui;
}

http://i.imgur.com/XKOBC7o.png
Когда-то я мог это сделать, но теперь я не знаю, что не так. Когда я погуглил эту проблему, я просто увидел, что это невозможно, но уверяю, что делал это раньше.

1 ответ

Решение

Это работает как шарм для меня:

main.qrc

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>config.ini</file>
</qresource>
</RCC>

main.cpp

#include <QSettings>
#include <QDebug>

int main()
{
    QSettings settings(":/config.ini", QSettings::IniFormat);
    qDebug() << settings.value("preview", false).toBool();
    qDebug() << settings.value("non-existent", false).toBool();
    return 0;
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
RESOURCES += main.qrc

Построить и запустить

qmake && make && ./main

Выход

true
false
Другие вопросы по тегам