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() 分别设置整行或整列的对齐方式。默认情况下,项目的对齐方式为左上角对齐。
另请参阅 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())
将item 添加到row 和column 的网格中。可以为item 指定一个可选的alignment 。
void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *item, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
将item 添加到row 和column 的网格中。可以指定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
返回网格布局中的列数。它总是比布局项占用的最后一列的索引多一列(空列除外)。
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.