欢迎光临散文网 会员登陆 & 注册

明仕强QT高级开发 学习笔记

2023-05-19 20:21 作者:戰億殇  | 我要投稿

在具体的代码编写中,只有继承自QObject的类中,才可以通过宏Q_OBJECT进行修饰,从而转变成要给元对象。

对于一个元对象,它有如下一些特点

1:可以支持QT特有的signals和slots机制,在不同对象之间进行通信。

2:可以支持QObject::metaObject方法,用于返回类关联的元对象。

3:可以支持QMetaObject::className,用于在执行期获取对象的类名。

4:可以支持QObject::inherits方法,用于判断一个对象是否继承自QObject

5:可以支持QObject::setProperty和QObject::property方法,用于动态的设置和获取属性名称。

6:可以支持通过QMetaObject::newInstance用于构造一个新的实例。

在使用QT的MOC机制时,存在的一些限制

1:不能对模板类使用MOC机制(模板类无法继承自QObject)。

2:多重继承时QObject必须是第一个,且不支持QObject的虚继承。

3:函数指针不能作为信号或槽的参数。但通过typedef简化后的函数指针可以作为槽函数的参数。

4:信号和槽函数的参数必须是完全名称限定。

5:内嵌类不能有信号和槽。

6:信号和槽函数返回不能是引用。


明仕强QT高级开发 学习笔记的评论 (共 条)

分享到微博请遵守国家法律