Qt整体框架浅析(一) -对象模型

本文深入探讨Qt框架中的对象模型,包括对象树、对象属性和元对象系统。Qt的对象树支持动态类类型转换,而对象属性基于元对象系统,允许编译时未知的属性在运行时动态添加。元对象系统是信号槽机制的基础,提供实时类型判断和属性管理。文章通过MOC(元对象编译器)阐述了Qt如何实现C++不原生支持的反射模式。
摘要由CSDN通过智能技术生成

最近在胶着于QT的框架以及其内核,

本文作为学习的总结,如果有误,望指正。

 

   首先介绍一下Qt的整体框架,Qt作为一个GUI的解决方案,其被设计为基于面向对象,跨平台,并直接与底层接口的framework,下图为主要的层次结构:

 

qt_architecture

 

    下边将从对象模型,事件机制,通信机制,定时器,Frame,模板,线程以及Qstring这几个方面来作为切入点,尝试去架构描述这个庞大的体系。

 

1.对象模型

   C++标准中虽然有很多的对实时的对象模型的支持,但其静态的特性,导致其仍然缺乏灵活性,Qt提供了自己的对象模型。

   主要包括对象树,对象属性,以及元对象系统等

 

   1)对象树(Object tree ),由于GUI的设计层次结构比较强,并需要兼顾效率,Qt设计了对象树,并支持了动态类类型转换,其中父对象与子对象相互指向,整体的结构关系相当于一个森林, 父对象与子对象为一对多的关系,并有多个平行的父对象。其中有两点需要注意,首先当父对象析构的时候将析构所有的子对象,如果子对象在栈中或者为全局变量,有可能导致重复析构,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值