扩展qgraphicsrectitem以覆盖完整的场景并以相同的比例扩展所有孩子

时间:2016-04-13 12:06:09

标签: qt qgraphicsview qgraphicsitem qgraphicsscene

我创建了一个带有QGraphicsRectItem的场景集的QGraphicsView。

图-1]

enter image description here

我希望当我双击标有粗黑色边框的绿色矩形时,场景只会被这个矩形填满,所有的孩子也会以相同的比例扩展。

所以,当我双击时,我应该在完整视图中看到类似的内容:

enter image description here

我已经处理了双击事件,但不知道如何处理。

另外,当我再次双击时,我回到之前的状态(如图-1所示)

1 个答案:

答案 0 :(得分:0)

正如QGraphicsView::fitInView

的文档所述
  

确保项目紧密贴合视图,根据aspectRatioMode缩放视图。

因此,假设pView是您的QGraphicsViewthis是您要查看的矩形,请从​​重载的双击事件QGraphicsRectItem调用fitInView: -

pView->fitInView(this);

基于只有rect和它的子项应该可见的注释,一个选项可以保证这一点,在双击时,创建一个单独的场景,将rect移动到新场景并将视图切换到新场景。