def setPos(self, *pos): if len(pos) == 1: point = QPointF(pos[0]) else: point = QPointF(*pos) self._lastPos = point QGraphicsWidget.setPos(self, point)
prefSize = QSizeF(210, 100) maxSize = QSizeF(300, 100) a = createItem(minSize, prefSize, maxSize, "A") b = createItem(minSize, prefSize, maxSize, "B") c = createItem(minSize, prefSize, maxSize, "C") d = createItem(minSize, prefSize, maxSize, "D") e = createItem(minSize, prefSize, maxSize, "E") f = createItem(QSizeF(30, 50), QSizeF(150, 50), maxSize, "F") g = createItem(QSizeF(30, 50), QSizeF(30, 100), maxSize, "G") l = QGraphicsAnchorLayout() l.setSpacing(0) w = QGraphicsWidget(None, Qt.Window) w.setPos(20, 20) w.setLayout(l) # Vertical. l.addAnchor(a, Qt.AnchorTop, l, Qt.AnchorTop) l.addAnchor(b, Qt.AnchorTop, l, Qt.AnchorTop) l.addAnchor(c, Qt.AnchorTop, a, Qt.AnchorBottom) l.addAnchor(c, Qt.AnchorTop, b, Qt.AnchorBottom) l.addAnchor(c, Qt.AnchorBottom, d, Qt.AnchorTop) l.addAnchor(c, Qt.AnchorBottom, e, Qt.AnchorTop) l.addAnchor(d, Qt.AnchorBottom, l, Qt.AnchorBottom) l.addAnchor(e, Qt.AnchorBottom, l, Qt.AnchorBottom) l.addAnchor(c, Qt.AnchorTop, f, Qt.AnchorTop)