QGraphicsObject boundingRect()和shape()重写

时间:2013-12-17 04:43:08

标签: qt qtgui

我有一个继承自QGraphicsObject的班级,我有一辆私人QPixmap变量汽车。我想做的就是在场景中绘制这个汽车图像。我想画很多像这样的车。我需要知道两辆车是否相互碰撞。我重写了两个函数boundingRect()和shape(),但它不起作用。例如,这是我的代码:

QRectF Car::boundingRect() const
{
   return QRectF(QPointF(0,0),car.size());
}

QPainterPath Car::shape() const
{
   QPainterPath path;
   path.addRect(boundingRect());
   return path;
 }

在main.cpp中,我测试它是这样的:

Car item(Car::RIGHT,10);
item.setPos(QPoint(95,52));
Car item1(Car::RIGHT,10);
item1.setPos(QPoint(95,54));
//item.start();
scene.addItem(&item);
scene.addItem(&item1);
//qDebug()<< item.boundingRect();
if(item.collidesWithItem(&item1)){
     qDebug()<<"item collides with item1";
}

但它不打印“项目与item1碰撞”我认为。出了什么问题?

0 个答案:

没有答案