QGraphicsGridLayout Class
QGraphicsGridLayoutクラスは、グラフィックスビューでウィジェットを管理するためのグリッドレイアウトを提供します。詳細...
Header: | #include <QGraphicsGridLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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() を呼び出して、このレイアウトをそのウィジェットの最上位レイアウトとして設定する必要があります。この場合、ウィジェットがレイアウトの所有権を取得します。
レイアウトはアイテムの所有権を持ちます。レイアウト・アイテムがQGraphicsItem (QGraphicsWidget など)からも継承されている場合、レイアウト・アイテムが2つの所有権階層に属するため、所有権が曖昧になることがあります。この場合の対処法はQGraphicsLayoutItem::setOwnedByLayout() のドキュメントを参照してください。count() とitemAt() を呼び出すことで、レイアウトの各アイテムにアクセスできます。removeAt() を呼び出すと、アイテムは破棄されずにレイアウトから削除されます。
QGraphicsGridLayout のサイズ・ヒントとサイズ・ポリシー
QGraphicsGridLayoutは各アイテムのサイズヒントとサイズポリシーを尊重し、グリッド内のセルにアイテムが入りきらないほどのスペースがある場合、各アイテムはそのアイテムに対するレイアウトのアライメントに従って配置されます。各アイテムのアライメントはsetAlignment() を呼び出すことで設定でき、任意のアイテムのアライメントはalignment() を呼び出すことで確認できます。また、setRowAlignment() およびsetColumnAlignment() をそれぞれ呼び出すと、行全体または列全体のアライメントを設定できます。デフォルトでは、項目は左上に配置されます。
QGraphicsLinearLayout およびQGraphicsWidgetも参照 。
メンバ関数ドキュメント
QGraphicsGridLayout::QGraphicsGridLayout(QGraphicsLayoutItem *parent = nullptr)
QGraphicsGridLayout インスタンスを構築します。parent はQGraphicsLayout のコンストラクタに渡されます。
[virtual noexcept]
QGraphicsGridLayout::~QGraphicsGridLayout()
QGraphicsGridLayout オブジェクトを破棄します。
void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *item, int row, int column, Qt::Alignment alignment = Qt::Alignment())
row とcolumn のグリッドにitem を追加します。item にはオプションでalignment を指定できます。
void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
row とcolumn のグリッドにitem を追加します。rowSpan とcolumnSpan を指定でき、オプションで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)
行の固定高さrow をheight に設定します。
void QGraphicsGridLayout::setRowMaximumHeight(int row, qreal height)
行の最大高さrow をheight に設定します。
rowMaximumHeight() も参照 。
void QGraphicsGridLayout::setRowMinimumHeight(int row, qreal height)
行の高さの最小値row をheight に設定します。
rowMinimumHeight() も参照 。
void QGraphicsGridLayout::setRowPreferredHeight(int row, qreal height)
行の優先高さrow をheight に設定します。
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()も参照してください 。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。