簡単なアンカーレイアウトの例

グラフィックスビューシーンでのアンカーレイアウトの例です。

単純なアンカー・レイアウトの例では、QGraphicsAnchorLayout クラスの基本的な使い方を示します。

この例では、QGraphicsScene (scene)、3つのウィジェット (a,b,c)、QGraphicsAnchorlayout (layout)を作成することから始めます。

    QGraphicsScene scene;

    Widget *a = new Widget(Qt::blue, Qt::white, "a");
    a->setPreferredSize(100, 100);
    Widget *b = new Widget(Qt::green, Qt::black, "b");
    b->setPreferredSize(100, 100);
    Widget *c = new Widget(Qt::red, Qt::black, "c");
    c->setPreferredSize(100, 100);

    QGraphicsAnchorLayout *layout = new QGraphicsAnchorLayout;

まず、アイテムa の左上隅をlayout の左上隅にアンカーします。 これは、2つのステップで行うことができます:

    layout->addAnchor(a, Qt::AnchorTop, layout, Qt::AnchorTop);
    layout->addAnchor(a, Qt::AnchorLeft, layout, Qt::AnchorLeft);

あるいは1ステップで行います:

    layout->addCornerAnchors(a, Qt::TopLeftCorner, layout, Qt::TopLeftCorner);

次に、a の右アンカーをb の左アンカーにアンカーし、アイテムb の上部をa の下部にアンカーする。

    layout->addAnchor(b, Qt::AnchorLeft, a, Qt::AnchorRight);
    layout->addAnchor(b, Qt::AnchorTop, a, Qt::AnchorBottom);

第3のウィジェットc をウィジェットb の下に置く:

    layout->addAnchor(b, Qt::AnchorBottom, c, Qt::AnchorTop);

アイテムbc は互いに水平に固定されている:

    layout->addAnchors(b, c, Qt::Horizontal);

アイテムcは、ウィジェット の右下に固定される。layout

    layout->addCornerAnchors(c, Qt::BottomRightCorner, layout, Qt::BottomRightCorner);

最後に、QGraphicsWidget wQGraphicsView view に表示される。

    auto w = new QGraphicsWidget(nullptr, Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
    w->setPos(20, 20);
    w->setMinimumSize(100, 100);
    w->setPreferredSize(320, 240);
    w->setLayout(layout);
    w->setWindowTitle(QApplication::translate("simpleanchorlayout", "QGraphicsAnchorLayout in use"));
    scene.addItem(w);

    QGraphicsView view;
    view.setScene(&scene);
    view.setWindowTitle(QApplication::translate("simpleanchorlayout", "Simple Anchor Layout"));

    view.resize(360, 320);
    view.show();

    return app.exec();

プロジェクト例 @ code.qt.io

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。