QT:将我的域对象基于QObject是一个好主意吗?

Sta*_*123 9 c++ qt qobject

将QT框架与C++结合使用,我有点新鲜.我想知道:将我的域类基于QObject是一个好主意吗?或者我应该只对层次结构中更高级别的类执行此操作?(更接近用户界面级别).QT文档不清楚:

摘自QT文档:

元对象系统是C++扩展,使该语言更适合真正的组件GUI编程.

显然,我希望以一种结构良好的方式构建我的应用程序.在过去的几天里,我一直在浏览QT文档,以便找到这个问题的答案.我不想犯一些基本的错误,这会使我的申请永远跛行;-).

我已经查看了QObject和Qt对象模型的基本文档.我还发现一篇新鲜的文章有帮助,但并没有真正帮助我得出结论.令我困惑的是,QT本身在这个问题上似乎并不一致,因为并非所有QT类都使用QObject作为基类.

我看到使用QObject作为基类的优点:

  • 等级制度
  • 信号和插槽
  • 属性
  • 能够使用守卫指针
  • 国际化

但是,在我的大多数域类中,我不需要任何这些功能.对此有最佳实践规则吗?或者规则是:如果您需要上述任何一点,请使用它吗?

希望我没有让这太混乱:-)

jse*_*gal 9

一般来说,除非有"迫切的需求",否则最好保持域名类别"vanilla".这为您提供了最大的灵活性(例如,在非Qt环境中重用它们).