我从QGraphicsItem派生的类返回一个Rect1的边界矩形。
QRectF BaseControl::boundingRect() const {
return(Rect1);
}
它的很多孩子都剪辑到了Rect1。
相反,当我的QGraphicsItem的boundingRect保持为Rect1?时,如何让孩子剪辑到我定义的内部矩形Rect2?
答案 0 :(得分:0)
我猜你在BaseControl上设置了ItemClipsChildrenToShape
标志。如果是这样,您只需重新实现QGraphicsItem::shape()
即可定义您希望子项剪辑到的形状,这可能与boundingRect()
不同(boundingRect()
是默认值)。
另一个可能更好的选择是创建一个容器QGraphicsItem,它将是BaseControl的子容器,以及要剪切的项目的父容器。此容器项应设置ItemClipsChildrenToShape
标志,但BaseControl不应该。这样,BaseControl可以有自己的边界矩形Rect1,容器项可以有Rect2作为其边界/剪裁矩形。