我对将 QT 框架与 C++ 结合使用相当陌生。我想知道:将我的域类基于 QObject 是个好主意吗?或者我应该只对层次结构中较高的类执行此操作吗? (更接近用户界面级别)。 QT 文档对此并不清楚:
摘自QT文档:
The meta-object system is a C++ extension that makes the language better suited to true component GUI programming.
显然,我想以结构良好的方式构建我的应用程序。在过去的几天里,我一直在浏览 QT 文档以找到这个问题的答案。我不想犯一些基本错误,这会让我的申请永远瘫痪 ;-)。
我已经看过 QObject 和 Qt 对象模型的基本文档。我还找到了一个 freshmeat article这有助于但并没有真正帮助我得出结论。让我感到困惑的另一件事是 QT 本身在这件事上似乎并不一致,因为并非所有 QT 类都使用 QObject 作为基类。
在我看来,使用 QObject 作为基类的优点:
- 层次结构
- 信号与槽
- 属性
- 能够使用 protected 指针
- 国际化
但是,在我的大多数领域类中,我不需要任何这些功能。对此有最佳实践规则吗?或者规则应该是:如果您需要上述任何一点,就使用它?
希望我没有让这太困惑:-)
最佳答案
一般来说,除非有“迫切需要”,否则您最好让您的域类保持“普通”。这为您在未来提供了最大的灵 active (例如,在非 Qt 环境中重新使用它们)。
关于c++ - QT:将我的域对象基于 QObject 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275983/