好的,所以我正在使用Qt框架编写一些软件代码(它让人们喜欢它们)。我很好奇是否有人可以向我解释setDevice()
对象类中的QXmlStreamReader
函数是如何工作的。使用Qt文档,我得出的结论是,它只是定义了要传输的文件所在的位置;如果是这种情况,我很困惑为什么我需要先打开文件才能与之交互。我正在寻找一个详细的理解它是如何工作的,我知道我应该能够弄清楚它,但我只是不熟悉c ++语言中的低级功能。感谢您对此有任何见解,您将真正帮助我理解该功能如何运作,这对我来说非常重要。
答案 0 :(得分:1)
QXmlStreamReader
类是一个解析器,这意味着它可以用于任何输入源。因此,输入流可以是一个文件,但不一定是。它也可以是QBuffer
,QTextStream
,QDataStream
或其他QIODevice
子类。您必须在将文件传递给QXmlStreamReader
之前打开该文件,因为该类对文件一无所知。代码:
QFile file("somefile");
QXmlStreamReader reader;
if (file.open(QIODevice::ReadOnly))
reader.setDevice(&file);
else
/*FAILURE*/