Anchor Layout Example▲
The Anchor Layout example demonstrates the use of the QGraphicsAnchorLayout class.
The basic steps of this example are:
-
Create a QGraphicsScene
-
Create widgets
-
Create a QGraphicsAnchorLayout
-
Create a QGraphicsWidget
-
Add vertical and horizontal anchors between the widgets
-
View the scene with a QGraphicsView object
Creating a QGraphicsScene▲
Sélectionnez
QGraphicsScene scene;
scene.setSceneRect(0
, 0
, 800
, 480
);
Creating Widgets▲
Sélectionnez
QGraphicsProxyWidget *
a =
createItem(minSize, prefSize, maxSize, "A"
);
QGraphicsProxyWidget *
b =
createItem(minSize, prefSize, maxSize, "B"
);
QGraphicsProxyWidget *
c =
createItem(minSize, prefSize, maxSize, "C"
);
QGraphicsProxyWidget *
d =
createItem(minSize, prefSize, maxSize, "D"
);
QGraphicsProxyWidget *
e =
createItem(minSize, prefSize, maxSize, "E"
);
QGraphicsProxyWidget *
f =
createItem(QSizeF(30
, 50
), QSizeF(150
, 50
), maxSize, "F (overflow)"
);
QGraphicsProxyWidget *
g =
createItem(QSizeF(30
, 50
), QSizeF(30
, 100
), maxSize, "G (overflow)"
);
Creating a Layout▲
Sélectionnez
QGraphicsAnchorLayout *
l =
new
QGraphicsAnchorLayout;
l-&
gt;setSpacing(0
);
Creating a QGraphicsWidget▲
Sélectionnez
QGraphicsWidget *
w =
new
QGraphicsWidget(0
, Qt::
Window);
w-&
gt;setPos(20
, 20
);
w-&
gt;setLayout(l);
Adding Anchors▲
Sélectionnez
// vertical
l-&
gt;addAnchor(a, Qt::
AnchorTop, l, Qt::
AnchorTop);
l-&
gt;addAnchor(b, Qt::
AnchorTop, l, Qt::
AnchorTop);
l-&
gt;addAnchor(c, Qt::
AnchorTop, a, Qt::
AnchorBottom);
l-&
gt;addAnchor(c, Qt::
AnchorTop, b, Qt::
AnchorBottom);
l-&
gt;addAnchor(c, Qt::
AnchorBottom, d, Qt::
AnchorTop);
l-&
gt;addAnchor(c, Qt::
AnchorBottom, e, Qt::
AnchorTop);
l-&
gt;addAnchor(d, Qt::
AnchorBottom, l, Qt::
AnchorBottom);
l-&
gt;addAnchor(e, Qt::
AnchorBottom, l, Qt::
AnchorBottom);
l-&
gt;addAnchor(c, Qt::
AnchorTop, f, Qt::
AnchorTop);
l-&
gt;addAnchor(c, Qt::
AnchorVerticalCenter, f, Qt::
AnchorBottom);
l-&
gt;addAnchor(f, Qt::
AnchorBottom, g, Qt::
AnchorTop);
l-&
gt;addAnchor(c, Qt::
AnchorBottom, g, Qt::
AnchorBottom);
// horizontal
l-&
gt;addAnchor(l, Qt::
AnchorLeft, a, Qt::
AnchorLeft);
l-&
gt;addAnchor(l, Qt::
AnchorLeft, d, Qt::
AnchorLeft);
l-&
gt;addAnchor(a, Qt::
AnchorRight, b, Qt::
AnchorLeft);
l-&
gt;addAnchor(a, Qt::
AnchorRight, c, Qt::
AnchorLeft);
l-&
gt;addAnchor(c, Qt::
AnchorRight, e, Qt::
AnchorLeft);
l-&
gt;addAnchor(b, Qt::
AnchorRight, l, Qt::
AnchorRight);
l-&
gt;addAnchor(e, Qt::
AnchorRight, l, Qt::
AnchorRight);
l-&
gt;addAnchor(d, Qt::
AnchorRight, e, Qt::
AnchorLeft);
l-&
gt;addAnchor(l, Qt::
AnchorLeft, f, Qt::
AnchorLeft);
l-&
gt;addAnchor(l, Qt::
AnchorLeft, g, Qt::
AnchorLeft);
l-&
gt;addAnchor(f, Qt::
AnchorRight, g, Qt::
AnchorRight);
Viewing the Scene with QGraphicsView▲
Sélectionnez
scene.addItem(w);
scene.setBackgroundBrush(Qt::
darkGreen);
QGraphicsView view(&
amp;scene);
view.show();
Example project▲
See Also▲
See also Simple Anchor Layout Example