QtQuick的结构体系小结

本文总结了QtQuick的结构体系,其源于Graphics View框架,包括QGraphicsView、QGraphicsScene和QGraphicsItem等核心类。QtQuick进一步扩展,引入脚本引擎和UML,提供了QDeclarativeView、QDeclarativeItem、QDeclarativeComponent和QDeclarativeEngine等关键组件,简化UI设计。QGraphicsProxyWidget和QGraphicsWebView是基于GraphicsItem的特殊实现,可能有助于QtQuick功能的拓展。
摘要由CSDN通过智能技术生成


前段时间学习了一下QtQuick的结构体系,初步总结如下:

 

QtQuick是从Graphics View框架发展而来的,这个框架的核心类有以下几个:

    QGraphicsView 继承自QWidget,用于显示QGraphicsScene中的QGraphicsItem对象

    QGraphicsScene 用于管理和维护QGraphicsItem

    QGraphicsItem Graphics框架显示对象的基类

在处理事件时,QGraphicsView通过QGraphicsScene,把QWidget体系的事件传到QGraphicsItem中,QGraphicsItem的层次化体系和QWidget有几分相似,不过两者应该是不相关的(QWidget有TLW概念,但是QGraphicsItem没有,所以不能独立显示,必须加入到QGraphicsScene中)。

 

QtQuick(QDeclarative)基于Graphics View框架,实现了一些常用的UI类,并且加入了脚本解析引擎,使UI的组织得更方便。这个体系包括以下几个核心类:

QDeclarativeView 继承自QGraphicsView,用于显示QDeclarative的UI(基于UML的UI)

QDeclarativeItem 继承自QGraphicsItem,所有QtQuick的可视化element的C++实现类都必须继承自这个类

QDeclarativeComponent 用于封装一段UML,提供创建QDeclarativeItem的接口,需要QDeclarativeEngine的支持

QDeclarativeEngine 用于访问和管理QML上下文,为QDeclarativeComponent的实例化提供支持

QDeclarativeContext QML上下文,即QML的运行环境

 

PS:看reference的时候发现,Qt开发人员基于GraphicsItem实现了两个特别的类QGraphicsProxyWidget和QGraphicsWebView,但是从继承关系上看,这应该是QtQuick以外的东西了,不过这两个提供的都是QtQuick中没有实现的功能,或许有什么方法可以整合到QtQuick的UI中?


参考:http://doc.qt.nokia.com/4.7/qtquick.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值