私の QGraphicsItem からの派生クラスは、Rect1 のバウンディング rect を返します。
QRectF BaseControl::boundingRect() const {
return(Rect1);
}
その多くの子はすべて Rect1 にクリップされます。
代わりに、QGraphicsItem の boundingRect が Rect1 のままである間に、私が定義した内側の rect Rect2 に子供をクリップさせるにはどうすればよいですか?
私の QGraphicsItem からの派生クラスは、Rect1 のバウンディング rect を返します。
QRectF BaseControl::boundingRect() const {
return(Rect1);
}
その多くの子はすべて Rect1 にクリップされます。
代わりに、QGraphicsItem の boundingRect が Rect1 のままである間に、私が定義した内側の rect Rect2 に子供をクリップさせるにはどうすればよいですか?
ItemClipsChildrenToShape
BaseControlにフラグを設定したと思います。その場合は、単に再実装して、子がクリップする形状を定義できます。これは、 (デフォルト)とはQGraphicsItem::shape()
異なる場合があります。boundingRect()
boundingRect()
おそらくより良いもう1つのオプションは、BaseControlの子であり、クリップするアイテムの親となるコンテナーQGraphicsItemを作成することです。このコンテナアイテムにはItemClipsChildrenToShape
フラグを設定する必要がありますが、BaseControlには設定しないでください。このように、BaseControlは独自の境界矩形Rect1を持つことができ、コンテナアイテムは境界/クリッピング矩形としてRect2を持つことができます。