返回介绍

Qt对象模型

发布于 2019-10-04 14:57:25 字数 622 浏览 1128 评论 0 收藏 0

标准的C++对象模型为对象范例提供了十分有效的运行时刻支持。但是这种C++对象
模型的静态性质在一定的问题领域是不够灵活的。图形用户界面编程就是一个同时
需要运行时刻的效率和高水平的灵活性的领域。Qt通过结合C++的速度为这一领域
提供了Qt对象模型的灵活性。

Qt把下面这些特性添加到了C++当中:

  • 一种关于无缝对象通讯被称为信号和槽的非常强大的机制,
  • 可查询和可设计的属性,
  • 强大的事件和事件过滤器,
  • 根据上下文进行国际化的字符串翻译,
  • 完善的时间间隔驱动的计时器使得在一个事件
    驱动的图形界面程序中很好地集成许多任务成为可能。

  • 以一种自然的方式组织对象所有权的分层次和可查询的对象树。
  • 被守护的指针,QGuardedPtr,当参考对象被破坏时,可以自动地设置为无效,
    不像正常的C++指针在它们的对象被破坏的时候变成了“摇摆指针”。

许多Qt的特性是基于QObject的继承,通过标准C++技术实现的。其他的,
比如对象通讯机制和虚拟属性系统,都需要Qt自己的元对象编译器(moc)
提供的元对象系统。

元对象系统是一种可以使语言更加适用于真正的组件图形用户界面程序的C++扩展。
尽管模板也可以用来扩展C++,元对象系统提供给标准C++而模板所不能提供的益处,
请看为什么Qt不用模板来实现信号和槽?。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文