QGraphicsGridLayout Class

QGraphicsGridLayoutクラスは、グラフィックスビューでウィジェットを管理するためのグリッドレイアウトを提供します。詳細...

ヘッダー #include <QGraphicsGridLayout>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QGraphicsLayout

パブリック関数

QGraphicsGridLayout(QGraphicsLayoutItem *parent = nullptr)
virtual ~QGraphicsGridLayout()
void addItem(QGraphicsLayoutItem *item, int row, int column, Qt::Alignment alignment = Qt::Alignment())
void addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
Qt::Alignment alignment(QGraphicsLayoutItem *item) const
Qt::Alignment columnAlignment(int column) const
int columnCount() const
qreal columnMaximumWidth(int column) const
qreal columnMinimumWidth(int column) const
qreal columnPreferredWidth(int column) const
qreal columnSpacing(int column) const
int columnStretchFactor(int column) const
qreal horizontalSpacing() const
QGraphicsLayoutItem *itemAt(int row, int column) const
void removeItem(QGraphicsLayoutItem *item)
Qt::Alignment rowAlignment(int row) const
int rowCount() const
qreal rowMaximumHeight(int row) const
qreal rowMinimumHeight(int row) const
qreal rowPreferredHeight(int row) const
qreal rowSpacing(int row) const
int rowStretchFactor(int row) const
void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)
void setColumnAlignment(int column, Qt::Alignment alignment)
void setColumnFixedWidth(int column, qreal width)
void setColumnMaximumWidth(int column, qreal width)
void setColumnMinimumWidth(int column, qreal width)
void setColumnPreferredWidth(int column, qreal width)
void setColumnSpacing(int column, qreal spacing)
void setColumnStretchFactor(int column, int stretch)
void setHorizontalSpacing(qreal spacing)
void setRowAlignment(int row, Qt::Alignment alignment)
void setRowFixedHeight(int row, qreal height)
void setRowMaximumHeight(int row, qreal height)
void setRowMinimumHeight(int row, qreal height)
void setRowPreferredHeight(int row, qreal height)
void setRowSpacing(int row, qreal spacing)
void setRowStretchFactor(int row, int stretch)
void setSpacing(qreal spacing)
void setVerticalSpacing(qreal spacing)
qreal verticalSpacing() const

再実装されたパブリック関数

virtual int count() const override
virtual void invalidate() override
virtual QGraphicsLayoutItem *itemAt(int index) const override
virtual void removeAt(int index) override
virtual void setGeometry(const QRectF &rect) override
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override

詳しい説明

QGraphicsGridLayout を使用する最も一般的な方法は、ヒープ上にオブジェクトを構築し、コンストラクタに親ウィジェットを渡し、addItem() を呼び出してウィジェットとレイアウトを追加することです。QGraphicsGridLayout は、アイテムを追加すると自動的にグリッドの寸法を計算します。

QGraphicsScene scene;
QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);

QGraphicsWidget *form = new QGraphicsWidget;
scene.addItem(form);

QGraphicsGridLayout *layout = new QGraphicsGridLayout(form);
layout->addItem(textEdit, 0, 0);
layout->addItem(pushButton, 0, 1);

また、レイアウトのコンストラクタに親ウィジェットを渡さない場合は、QGraphicsWidget::setLayout() を呼び出して、このレイアウトをそのウィジェットの最上位レイアウトとして設定する必要があります。この場合、ウィジェットがレイアウトの所有権を取得します。

レイアウトはアイテムの所有権を持ちます。レイアウト・アイテムがQGraphicsItemQGraphicsWidget など)からも継承されている場合、レイアウト・アイテムが2つの所有権階層に属するため、所有権が曖昧になることがあります。この場合の対処法はQGraphicsLayoutItem::setOwnedByLayout() のドキュメントを参照してください。count() とitemAt() を呼び出すことで、レイアウトの各アイテムにアクセスできます。removeAt() を呼び出すと、アイテムは破棄されずにレイアウトから削除されます。

QGraphicsGridLayout のサイズ・ヒントとサイズ・ポリシー

QGraphicsGridLayoutは各アイテムのサイズヒントとサイズポリシーを尊重し、グリッド内のセルにアイテムが入りきらないほどのスペースがある場合、各アイテムはそのアイテムに対するレイアウトのアライメントに従って配置されます。各アイテムのアライメントはsetAlignment() を呼び出すことで設定でき、任意のアイテムのアライメントはalignment() を呼び出すことで確認できます。また、setRowAlignment() とsetColumnAlignment() をそれぞれ呼び出すことで、行全体または列全体のアライメントを設定することもできます。デフォルトでは、項目は左上に配置されます。

QGraphicsLinearLayout およびQGraphicsWidgetも参照

メンバ関数ドキュメント

QGraphicsGridLayout::QGraphicsGridLayout(QGraphicsLayoutItem *parent = nullptr)

QGraphicsGridLayout のインスタンスを構築します。parentQGraphicsLayout のコンストラクタに渡されます。

[virtual noexcept] QGraphicsGridLayout::~QGraphicsGridLayout()

QGraphicsGridLayout オブジェクトを破棄する。

void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *item, int row, int column, Qt::Alignment alignment = Qt::Alignment())

rowcolumn のグリッドにitem を追加します。item にはオプションでalignment を指定できます。

void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

rowcolumn のグリッドにitem を追加します。rowSpancolumnSpan を指定でき、オプションでalignment を指定できます。

Qt::Alignment QGraphicsGridLayout::alignment(QGraphicsLayoutItem *item) const

item のアラインメントを返す。

setAlignment()も参照

Qt::Alignment QGraphicsGridLayout::columnAlignment(int column) const

column のアラインメントを返す。

setColumnAlignment()も参照

int QGraphicsGridLayout::columnCount() const

グリッドレイアウトのカラム数を返します。これは常に、レイアウト項目で占められている最後の列のインデックスより1つ多くなります (空の列は末尾の列を除いてカウントされます)。

qreal QGraphicsGridLayout::columnMaximumWidth(int column) const

column の最大幅を返す。

setColumnMaximumWidth()も参照

qreal QGraphicsGridLayout::columnMinimumWidth(int column) const

column の最小幅を返す。

setColumnMinimumWidth()も参照

qreal QGraphicsGridLayout::columnPreferredWidth(int column) const

column の優先幅を返す。

setColumnPreferredWidth()も参照

qreal QGraphicsGridLayout::columnSpacing(int column) const

column の列間隔を返す。

setColumnSpacing()も参照

int QGraphicsGridLayout::columnStretchFactor(int column) const

column のストレッチ係数を返す。

setColumnStretchFactor()も参照

[override virtual] int QGraphicsGridLayout::count() const

再実装:QGraphicsLayout::count() const.

このグリッドレイアウトのレイアウトアイテムの数を返します。

qreal QGraphicsGridLayout::horizontalSpacing() const

グリッドレイアウトのデフォルトの水平間隔を返します。

setHorizontalSpacing()も参照 ください。

[override virtual] void QGraphicsGridLayout::invalidate()

再インプリメント:QGraphicsLayout::invalidate().

[override virtual] QGraphicsLayoutItem *QGraphicsGridLayout::itemAt(int index) const

再インプリメント:QGraphicsLayout::itemAt(int i) const.

indexこのインデックスにレイアウトアイテムがない場合はnullptr を返します。

QGraphicsLayoutItem *QGraphicsGridLayout::itemAt(int row, int column) const

row,column )にあるレイアウト項目へのポインタを返します。

[override virtual] void QGraphicsGridLayout::removeAt(int index)

再インプリメント:QGraphicsLayout::removeAt(int index).

index のレイアウトアイテムを破棄せずに削除します。アイテムの所有権は呼び出し元に移ります。

addItem()も参照してください

void QGraphicsGridLayout::removeItem(QGraphicsLayoutItem *item)

レイアウトアイテムitem を破棄せずに削除します。アイテムの所有権は呼び出し元に移ります。

addItem()も参照してください

Qt::Alignment QGraphicsGridLayout::rowAlignment(int row) const

row のアラインメントを返す。

setRowAlignment()も参照

int QGraphicsGridLayout::rowCount() const

グリッドレイアウトの行数を返します。これは常に、レイアウト項目で占められている最後の行のインデックスより 1 つ多くなります (空の行は、末尾の行を除いてカウントされます)。

qreal QGraphicsGridLayout::rowMaximumHeight(int row) const

行の最大高さrow を返す。

setRowMaximumHeight()も参照

qreal QGraphicsGridLayout::rowMinimumHeight(int row) const

行の高さの最小値を返すrow

setRowMinimumHeight()も参照

qreal QGraphicsGridLayout::rowPreferredHeight(int row) const

row 行の高さを返します。

setRowPreferredHeight()も参照

qreal QGraphicsGridLayout::rowSpacing(int row) const

row の行間を返す。

setRowSpacing()も参照

int QGraphicsGridLayout::rowStretchFactor(int row) const

row のストレッチ係数を返す。

setRowStretchFactor()も参照

void QGraphicsGridLayout::setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)

item のアライメントをalignment に設定する。

alignment()も参照のこと

void QGraphicsGridLayout::setColumnAlignment(int column, Qt::Alignment alignment)

column のアライメントをalignment に設定する。

columnAlignment()も参照のこと

void QGraphicsGridLayout::setColumnFixedWidth(int column, qreal width)

column の固定幅をwidth に設定する。

void QGraphicsGridLayout::setColumnMaximumWidth(int column, qreal width)

column の最大幅をwidth に設定する。

columnMaximumWidth()も参照のこと

void QGraphicsGridLayout::setColumnMinimumWidth(int column, qreal width)

column の最小幅をwidth に設定する。

columnMinimumWidth()も参照のこと

void QGraphicsGridLayout::setColumnPreferredWidth(int column, qreal width)

column の優先幅をwidth に設定する。

columnPreferredWidth()も参照のこと

void QGraphicsGridLayout::setColumnSpacing(int column, qreal spacing)

column の間隔をspacing に設定する。

columnSpacing()も参照のこと

void QGraphicsGridLayout::setColumnStretchFactor(int column, int stretch)

column の伸張率をstretch に設定する。

columnStretchFactor()も参照のこと

[override virtual] void QGraphicsGridLayout::setGeometry(const QRectF &rect)

再実装:QGraphicsLayoutItem::setGeometry(const QRectF &rect)。

グリッドレイアウトの境界ジオメトリをrect に設定します。

void QGraphicsGridLayout::setHorizontalSpacing(qreal spacing)

グ リ ッ ド レ イ ア ウ ト のデフ ォ ル ト 横間隔をspacing に設定。

horizontalSpacing()も参照

void QGraphicsGridLayout::setRowAlignment(int row, Qt::Alignment alignment)

row のアライメントをalignment に設定する。

rowAlignment()も参照のこと

void QGraphicsGridLayout::setRowFixedHeight(int row, qreal height)

行の固定高さrowheight に設定する。

void QGraphicsGridLayout::setRowMaximumHeight(int row, qreal height)

行の最大高さrowheight に設定する。

rowMaximumHeight()も参照のこと

void QGraphicsGridLayout::setRowMinimumHeight(int row, qreal height)

行の高さの最小値rowheight に設定する。

rowMinimumHeight()も参照のこと

void QGraphicsGridLayout::setRowPreferredHeight(int row, qreal height)

行の優先高さrowheight に設定する。

rowPreferredHeight()も参照のこと

void QGraphicsGridLayout::setRowSpacing(int row, qreal spacing)

row の間隔をspacing に設定する。

rowSpacing()も参照のこと

void QGraphicsGridLayout::setRowStretchFactor(int row, int stretch)

row の伸張率をstretch に設定する。

rowStretchFactor()も参照のこと

void QGraphicsGridLayout::setSpacing(qreal spacing)

グリッドレイアウトのデフォルトの間隔を、縦と横の両方でspacing に設定します。

rowSpacing() およびcolumnSpacing()も参照

void QGraphicsGridLayout::setVerticalSpacing(qreal spacing)

グ リ ッ ド レ イ ア ウ ト のデフ ォ ル ト 縦間隔をspacing に設定。

verticalSpacing()も参照

[override virtual] QSizeF QGraphicsGridLayout::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

再実装:QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const.

qreal QGraphicsGridLayout::verticalSpacing() const

グリッドレイアウトのデフォルトの縦方向の間隔を返します。

setVerticalSpacing()も参照 ください。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.