使用QGraphicsObject与QGraphicsItem的惩罚?

Dut*_*tch 6 qt qt4

我目前有一个基于QGraphicsItem的项目层次结构.

我想转移到QGraphicsObject,以便我可以在我的项目上放置属性.我不会使用信号/插槽或QObject的任何其他功能.

我被告知你不应该从QObject派生,因为它"重"和"慢".

为了测试影响,我从QGraphicsObject派生,为我的项添加一些属性,并查看正在运行的应用程序的内存使用情况.我使用两种口味创建1000个项目,我没有注意到超过10k的内存使用量.

由于我添加到我的项目中的所有属性都是安全的,如果你使用信号/插槽,QObject只会增加重量吗?

Kal*_*son 4

我认为这取决于你所说的重量是什么意思。如果您不担心所需的额外内存,也不担心附带的所有额外方法和事物(QObject这对您来说听起来像是行李),那么是的。

但是,如果您需要的只是一种存储一些附加信息的方法,为什么不子类化 QGraphicsItem 并添加一两个允许您存储必要数据的方法呢?通过这样做,我认为您可以更好地传达代码的意图,这似乎比上述所有内容都更重要。