【发布时间】:2014-10-09 06:21:48
【问题描述】:
我正在使用鼠标点击画一条线。使用paint函数绘制线条为:
painter->drawLine(start_p, end_p);
线的边界矩形定义为:
QRectF Line::boundingRect() const
{
// bounding rectangle for line
return QRectF(start_p, end_p).normalized();
}
这显示了绘制的线条。我得到了如图所示的边界矩形:
我想根据项目的形状设置边界矩形,例如:
如何做到这一点?
编辑
在选择任何重叠线时,会选择顶部有边界矩形的那条(见下图)。即使使用setZValue 在这里也行不通。
我想通过将边界矩形最小化为线的形状来实现这一点。
【问题讨论】:
-
这是一个交叉帖子。 :)
-
我是新手。能否请您提供一些演示代码。
-
您检查了我链接的文档吗?那里有一个例子。还要检查
QPainterPath的文档。您也许可以使用QPainterPath::addPolygon创建您的形状。 -
您无法更改边界框的形状或方向。但是您可以更改用于碰撞和撞击测试的形状(如@thuga 所示)- 您的意思是这样吗?
标签: qt bounding-box qgraphicsitem