最近也是一直在用Qt+XML+qss开发界面,所以总结一下这套前端的架构模式。主要的构成就是用xml写出界面需要用到的控件以及布局,利用Qt中的QDom类对xml进行解析,解析并获取xml中参数后,创建Qt相关的控件,并且在qss中设计出具体的控件样式。最后得到一套完整的Qt+XML+qss界面架构模型,在整个模型中,界面的绘制直接依靠xml去实现即可,少部分代码添加进解析程序中,复用性尚可。
目录
QDom简介
QDom其实是Qt中一个很大的类,写一天可能也写不完,其中包含着QDomcument,QDomNode,QDomElement,QDomNodeList等类,这些类是实现解析出XML的关键。我们以这几个类为切入点介绍这个QDom里面的各个类的复杂关系网。
DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口。
DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些。能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接将这颗树保存为硬盘上的一个 XML 文件。
-
XML DOM节点
XML 文档中的每个成分都是一个节点,整个文档是一个文档节点,每个XML 标签是一个元素节点,包含在XML元素中的文本是文本节点, 每一个XML属性是一个属性节点,注释属于注释节点。
QDomDocument
该QDomDocument类表示XML文档。
该QDomDocument类代表整个XML文档。从概念上讲,它是文档树的根,并提供对文档数据的主要访问。
由于元素,文本节点,注释,处理指令等不能在文档上下文之外存在,因此文档类还包含创建这些对象所需的工厂功能。创建的节点对象具有ownerDocument()函数,该函数将它们与在其上下文中创建的文档相关联。最常使用的DOM类是QDomNode,QDomDocument,QDomElement和QDomText。
解析的XML在内部由对象树表示,可以使用各种QDom类访问这些对象。所有QDom类仅引用内部树中的对象。一旦删除引用了它们的最后一个QDom对象和QDomDocument本身,DOM树中的内部对象将被删除。
元素,文本节点等的创建是使用此类中提供的各种工厂功能完成的。使用QDom类的默认构造函数只会导致无法操纵或将其插入Document的空对象。
- QDomDocument成员函数
QDomDocument::QDomDocument(const QString &name)
构造函数
QDomAttr QDomDocu