Как включить текстовый файл в приложение qt?
У меня есть текстовый файл, из которого мне нужно получить данные по строке за строкой. Таким образом, если мое приложение запущено, оно может читать из текстового файла, чтобы показать информацию. Но я не хочу предоставлять свой текстовый файл отдельно вместе с моим приложением. Может кто - нибудь подсказать мне, как это сделать?
И хорошо, что я должен сделать это с помощью Qt!
Я слышал, что использование xml будет лучшим и простым способом для достижения этой цели.
Кстати, спасибо заранее!
4 ответов:
Вы должны добавить файл ресурсов qt (.разводка) в проекте
Это может выглядеть так:
<RCC> <qresource prefix="/"> <file>file.xml</file> <file>files/file2.xml</file> </qresource> </RCC>После этого вы должны добавить этот файл ресурсов в файл проекта (. pro)
Вот так, например:
RESOURCES += myqrcfile.qrcПосле этого вы можете использовать этот файл в своем коде, используя символ ':' чтобы обратиться к файлу
Может быть, так:
QFile data(":/file.xml"); //or QFile data(":/files/file2.xml"); //etc...Помните, что путь, который вы определяете для файла (в qrc), должен соответствовать расположение в файловой системе также.
Надеюсь, это поможет, для получения дополнительной информации я предлагаю вам прочитать ссылку на документацию, которую опубликовал Gorkem Ercan.
Qt Resource System - это то, что вы ищете.
Такой код работает в Qt 5.2:
QResource common(":/phrases/Resources/Phrases/Common.xml"); QFile commonFile(common.absoluteFilePath()); if (!commonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Unable to open file: " << commonFile.fileName() << " besause of error " << commonFile.errorString() << endl; return; } QTextStream in(&commonFile); QString content = in.readAll();
Продолжая отвечать на взрывающийся ответ.
Подобное использование QFile не работает (по крайней мере, в Qt 4.5), но вы можете использовать:
QResource r( ":/file.xml" ); QByteArray b( reinterpret_cast< const char* >( r.data() ), r.size() );
Comments