Итак, я пишу небольшой программный код (это понравится ребятам) с использованием фреймворка Qt. Мне любопытно, если кто-нибудь там может объяснить мне, как именно setDevice()
функция в пределах QXmlStreamReader
объект класса работает. Используя документацию Qt, я пришел к выводу, что он просто определяет, где находится файл, который вы хотите транслировать; если это так, я не понимаю, зачем мне сначала открывать файл перед тем, как с ним работать. Я ищу подробное понимание того, как это работает, я знаю, что я должен быть в состоянии понять это, но я просто не настолько опытен, но на низком уровне функциональности в языке c ++. Спасибо за понимание, вы действительно поможете мне понять, «как» работает эта функция, что очень важно для меня.
QXmlStreamReader
Класс — это синтаксический анализатор, то есть он может использоваться для любого источника ввода. Поэтому входной поток Можно быть файлом, но не обязательно. Это также может быть QBuffer
, QTextStream
, QDataStream
или множество других QIODevice
подклассы. Вы должны открыть файл, прежде чем передать его QXmlStreamReader
потому что класс ничего не знает о файлах. Код:
QFile file("somefile");
QXmlStreamReader reader;
if (file.open(QIODevice::ReadOnly))
reader.setDevice(&file);
else
/*FAILURE*/