Всем привет,
странная проблема - когда пытаюсь создать boundingRect динамически или получить разчитаный через QPainterPath - hoverEvent работает криво. Если кодирую жестко - работает правильно.
Как я вижу перерисовка происходит в правильных границах. Но на границы hoverEvent влияет то, как опеределен boundingRect. Если boundingRect прописан хардом, то и hoverEvent работает в правильных границах, если boundingRect прописан динамически то hoverEvent кривой!
Вот например динамический boundingRect который не работает:
C++ (Qt)
QRectF Qcr::boundingRect(void) const
{
qreal x = painterPath_.controlPointRect().x(); // возвращает -50
qreal y = painterPath_.controlPointRect().y(); // возвращает -50
qreal w = painterPath_.controlPointRect().width(); // возвращает 230
qreal h = painterPath_.controlPointRect().height(); // возвращает 230
QRectF r(x, y, w, h ); // ТОГДА ГРАНИЦЫ HOVERMOVEEVENT (x = 0, y = 0, w = 50, h = 25 ); !!!!!!!!!!!!!!!!! ПОЧЕМУ МЛИН ????????????????????????????
return r;
}
Хард код делает все правильно:
C++ (Qt)
QRectF Qcr::boundingRect(void) const
{
QRectF r(-200, -200, 400, 400 );
return r;
}
Спасибо