Файл, который прописан в .qrc, не открывается в QFile
Я использую Cmake проект, где у меня совмещены C++ и QML. В mainwindow.cpp я загружаю как ресурс main.qml. Так же внутри конструктора mainwindow я запускаю функцию. В этой функции пытаюсь открыть файл, как указано в заголовке.
void MainWindow::SaveListConfig()
{
QFile file(":/configuration/WidgetOrder.ini");
file.open(QIODevice::WriteOnly);
...
}
Но получаю следующие предупреждение, а запись в файл не проходит:
QIODevice::write (QFile, ":\configuration\WidgetOrder.ini"): device not open
Файл data.qrc указан в CMakeLists.txt. Более того, я вполне без проблем загружаю файлы ресурсов из кода qml. icon: "qrc:/images/fuel-icon.png"
Я так же пробовал несколько вариантов обращений в C++:
QIODevice::write (QFile, "qrc:\configuration\WidgetOrder.ini"): device not open
QIODevice::write (QFile, "qrc:\\configuration\WidgetOrder.ini"): device not open
QIODevice::write (QFile, ":\\configuration\WidgetOrder.ini"): device not open
Вот мой data.qrc:
<RCC>
<qresource prefix="/">
...
<file>images/fuel-icon.png</file>
<file>configuration/WidgetOrder.ini</file>
...
</qresource>
</RCC>
Существование самого файла я тоже ни раз проверял, конечно. Более того, если вбить полный путь до файла - всё работает.
Ответы (1 шт):
Нельзя писать в файлы ресурсов. Они доступны только для чтения (read-only). Ресурсы это массив типа static const unsigned char в котором находятся сжатые zip-ом файлы перечисленные в qrc-файле. Вы их можете найти после компиляции в файле qrc_*.cpp