Qt 5.5 setDevice()定义

时间:2015-08-27 01:27:47

标签: c++ xml qt qt5 qtxml

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

1 个答案:

答案 0 :(得分:1)

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

QFile file("somefile");
QXmlStreamReader reader;
if (file.open(QIODevice::ReadOnly))
    reader.setDevice(&file);
else
    /*FAILURE*/