0

好的,所以我正在使用 Qt 框架编写一些软件代码(人们会喜欢的)。我很好奇是否有人可以向我解释对象类中的setDevice()函数是如何工作的。QXmlStreamReader使用 Qt 文档,我得出的结论是,它只是定义了您要流式传输的文件的位置;如果是这种情况,我对为什么在与文件交互之前需要先打开文件感到困惑。我正在寻找对其工作原理的详细了解,我知道我应该能够弄清楚,但我对 c++ 语言中的低级功能还没有那么精通。感谢您对此的任何见解,您将真正帮助我了解该功能的“如何”工作,这对我来说非常重要。

4

1 回答 1

1

该类QXmlStreamReader是一个解析器,这意味着它可以用于任何输入源。因此,输入流可以是文件,但不一定是。它也可以是 a QBuffer、 a QTextStream、 aQDataStream或许多其他QIODevice子类。您必须在将文件传递给之前打开文件,QXmlStreamReader因为该类对文件一无所知。代码:

QFile file("somefile");
QXmlStreamReader reader;
if (file.open(QIODevice::ReadOnly))
    reader.setDevice(&file);
else
    /*FAILURE*/
于 2015-08-27T01:57:28.143 回答