Qt - círculos para detecção de colisão

Eu tenho trabalhado em uma simulação de física com círculos no Qt. Até agora, a maneira mais fácil de definir círculos que encontrei é fazer umaQRect objeto e, em seguida, desenhe a elipse com esse retângulo como um "blueprint". Agora, acabei de ter o problema de pintar um círculo, mas a caixa de ocorrências para a detecção de ocorrências ainda é um quadrado, o que parece bastante estranho. Não consegui encontrar uma solução para isso até agora e espero encontrar alguma ajuda aqui.

QRectF Ball::boundingRect() const
{    
  return QRect(0,0,20,20);
}
void Ball::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    QRectF rec = boundingRect();
    QBrush Brush(Qt::gray);

    //basic Collision Detection

    if(scene()->collidingItems(this).isEmpty())
    {
        //no collision
        Brush.setColor(Qt::green);
    }
    else
    {
        //collision!!!!!
        Brush.setColor(Qt::red);

        //Set position
        DoCollision();
    }

    //painter->fillEllipse(rec,Brush);
    painter->drawEllipse(rec);
}

questionAnswers(2)

yourAnswerToTheQuestion