还记得我们在 Food 类中有这么一句:
setData(GD_Type, GO_Food);
QGraphicsItem::setData()以键值对的形式设置元素的自定义数据。所谓自定义数据,就是对应用程序有所帮助的用户数据。Qt 不会使用这种机制来存储数据,因此你可以放心地将所需要的数据存储到元素对象。例如,我们在Food的构造函数中,将GD_Type的值设置为GO_Food。那么,这里我们取出GD_Type,如果其值是GO_Food,意味着这个与蛇的head碰撞的QGraphicsItem就是一个Food,因此我们可以将其安全地进行后面的类型转换,从而完成下面的代码。