我目前有一个基于QGraphicsItem的项目层次结构.
我想转移到QGraphicsObject,以便我可以在我的项目上放置属性.我不会使用信号/插槽或QObject的任何其他功能.
我被告知你不应该从QObject派生,因为它"重"和"慢".
为了测试影响,我从QGraphicsObject派生,为我的项添加一些属性,并查看正在运行的应用程序的内存使用情况.我使用两种口味创建1000个项目,我没有注意到超过10k的内存使用量.
由于我添加到我的项目中的所有属性都是安全的,如果你使用信号/插槽,QObject只会增加重量吗?
我认为这取决于你所说的重量是什么意思。如果您不担心所需的额外内存,也不担心附带的所有额外方法和事物(QObject
这对您来说听起来像是行李),那么是的。
但是,如果您需要的只是一种存储一些附加信息的方法,为什么不子类化 QGraphicsItem 并添加一两个允许您存储必要数据的方法呢?通过这样做,我认为您可以更好地传达代码的意图,这似乎比上述所有内容都更重要。