QGraphicsGridLayout Class

QGraphicsGridLayout 类为管理图形视图中的部件提供了网格布局。更多

Header: #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() 将此布局设置为该部件的顶层布局,该部件将获得布局的所有权。

布局拥有项的所有权。在某些情况下,当布局项也继承自QGraphicsItem 时(如QGraphicsWidget ),由于布局项属于两个所有权层级,因此在所有权方面会出现歧义。请参阅QGraphicsLayoutItem::setOwnedByLayout() 的文档,了解如何处理这种情况。您可以通过调用count() 和itemAt() 访问布局中的每个项目。调用removeAt() 将从布局中移除一个项目,但不会销毁它。

QGraphicsGridLayout 中的尺寸提示和尺寸策略

QGraphicsGridLayout 尊重每个项的尺寸提示和尺寸策略,当网格中某个单元格的空间超过了项所能填充的空间时,每个项将根据布局的对齐方式进行排列。你可以通过调用setAlignment() 为每个项目设置对齐方式,也可以通过调用alignment() 检查任何项目的对齐方式。还可以通过调用setRowAlignment() 和setColumnAlignment() 分别设置整行或整列的对齐方式。默认情况下,项目的对齐方式为左上角对齐。

另请参阅 QGraphicsLinearLayoutQGraphicsWidget

成员函数文档

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())

item 添加到rowcolumn 的网格中。可以为item 指定一个可选的alignment

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

item 添加到rowcolumn 的网格中。可以指定rowSpancolumnSpan 以及可选的alignment

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

返回item 的对齐方式。

另请参见 setAlignment().

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

返回column 的对齐方式。

另请参见 setColumnAlignment().

int QGraphicsGridLayout::columnCount() const

返回网格布局中的列数。它总是比布局项占用的最后一列的索引多一列(空列除外)。

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() 常量。

返回此网格布局中布局项的数量。

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

返回网格布局中的行数。它总是比布局项占用的最后一行的索引多一行(空行除外)。

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()。

© 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.