残念ながら、これに関する文書化された情報はありません。QLayout
ウィジェット内のウィジェットではなく、QGraphicsItem
内部QGraphicsItem
の s のようなレイアウト クラスが必要です。私は持っている:
class AnotherGraphicsItem : public QGraphicsItem {
public:
QRectF boundingRect();
void paint(QPainter *painter, ...) {
painter->drawRect(0, 0, 30, 30);
// ...
}
};
class GraphicsItem : public QGraphicsItem {
public:
QRectF boundingRect();
void paint(...) {
for (size_t i = 0; i < 4; ++i) {
AnotherGraphicsItem *aItem = new AnotherGraphicsItem();
aItem->setPos(i * 20, 0);
aItem->setParent(this);
}
}
};
class GraphicsView : public QGraphicsView {
public:
GraphicsView(){ setScene(new QGraphicsScene(this)); populate(); }
void populate() {
QGraphicsItem *item = new GraphicsItem();
scene()->addItem(item);
}
};
簡単に言えば、私のGraphicsView
オブジェクトには、別の QGraphicsItem オブジェクト内に QGraphicsItem オブジェクトがあるシーンがあります
QGraphicsView -> QGraphicsScene -> QGraphicsItem (GraphicsItem) -> 4x QGraphicsItem (AnotherGraphicsItem)
問題はAnotherGraphicsItem
、外側のGraphicsItem
オブジェクトで何らかの方法で整列する必要があることです。私は使用しましたが、使用するつもりのないQGraphicsLayout
内部で使用する必要があるか、 (メソッドがある)でのみ機能するようです。QGraphicsWidget
QGraphicsView
setLayout()
いくつかの良い例も歓迎します。