Spec-Zone.ru › Qt 5.15

Класс QGridLayout

Класс QGridLayout размещает виджеты в сетке. Подробнее...

Заголовок: #include <QGridLayout>
qmake: QT += widgets
Наследуется от: QLayout
  • Список всех членов, включая наследуемые

Свойства

  • horizontalSpacing : int
  • verticalSpacing : int

Открытые функции

QGridLayout()
QGridLayout(QWidget *parent)
virtual ~QGridLayout()
void addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment())
void addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment())
void addLayout(QLayout *layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
void addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())
void addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())
QRect cellRect(int row, int column) const
int columnCount() const
int columnMinimumWidth(int column) const
int columnStretch(int column) const
void getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const
int horizontalSpacing() const
QLayoutItem * itemAtPosition(int row, int column) const
Qt::Corner originCorner() const
int rowCount() const
int rowMinimumHeight(int row) const
int rowStretch(int row) const
void setColumnMinimumWidth(int column, int minSize)
void setColumnStretch(int column, int stretch)
void setHorizontalSpacing(int spacing)
void setOriginCorner(Qt::Corner corner)
void setRowMinimumHeight(int row, int minSize)
void setRowStretch(int row, int stretch)
void setSpacing(int spacing)
void setVerticalSpacing(int spacing)
int spacing() const
int verticalSpacing() const

Переопределённые открытые функции

virtual int count() const override
virtual Qt::Orientations expandingDirections() const override
virtual bool hasHeightForWidth() const override
virtual int heightForWidth(int w) const override
virtual void invalidate() override
virtual QLayoutItem * itemAt(int index) const override
virtual QSize maximumSize() const override
virtual int minimumHeightForWidth(int w) const override
virtual QSize minimumSize() const override
virtual void setGeometry(const QRect &rect) override
virtual QSize sizeHint() const override
virtual QLayoutItem * takeAt(int index) override

Переопределённые защищённые функции

virtual void addItem(QLayoutItem *item) override

Подробное описание

QGridLayout занимает выделенное для него пространство (родительским макетом или методом parentWidget()), разбивает его на строки и столбцы и помещает каждый управляемый им виджет в соответствующую ячейку.

Столбцы и строки ведут себя одинаково; мы будем обсуждать столбцы, но для строк существуют аналогичные функции.

Каждый столбец имеет минимальную ширину и коэффициент растяжения. Минимальная ширина — это максимальное значение из заданного с помощью setColumnMinimumWidth() и минимальной ширины каждого виджета в этом столбце. Коэффициент растяжения устанавливается с помощью setColumnStretch() и определяет, сколько места получит столбец сверх его необходимой минимальной ширины.

Обычно каждый управляемый виджет или макет помещается в собственную ячейку с помощью addWidget(). Также возможно, чтобы виджет занимал несколько ячеек, используя перегрузки методов addItem() и addWidget() с параметрами для указания строк и столбцов.

Чтобы удалить виджет из макета, вызовите removeWidget(). Вызов QWidget::hide() на виджете также фактически удаляет виджет из макета до тех пор, пока не будет вызван QWidget::show().

На этом рисунке показан фрагмент диалога с сеткой из пяти столбцов и трёх строк (сетка показана поверх неё фиолетовым цветом):

A grid layout

Столбцы 0, 2 и 4 в этом фрагменте диалога состоят из QLabel, QLineEdit и QListBox. Столбцы 1 и 3 являются заполнителями, созданными с помощью setColumnMinimumWidth(). Строка 0 состоит из трех объектов QLabel, строка 1 — из трех объектов QLineEdit, а строка 2 — из трех объектов QListBox. Мы использовали столбцы-заполнители (1 и 3), чтобы обеспечить правильное расстояние между столбцами.

Обратите внимание, что столбцы и строки не имеют одинаковой ширины и высоты. Если вы хотите, чтобы два столбца имели одинаковую ширину, вы должны самостоятельно задать их минимальную ширину и коэффициенты растяжения. Для этого используйте setColumnMinimumWidth() и setColumnStretch().

Если QGridLayout не является верхним макетом (т. е. не управляет всей областью виджета и его дочерними элементами), вы должны добавить его в родительский макет, когда создаёте его, но до выполнения любых действий с ним. Обычный способ добавления макета — вызов addLayout() в родительском макете.

После добавления макета вы можете начать размещать виджеты и другие макеты в ячейках вашего сетчатого макета, используя addWidget(), addItem() и addLayout().

QGridLayout также включает две ширины отступов: отступ содержимого и расстояние. Отступ содержимого — это ширина выделенной области вокруг QGridLayout со всех четырёх сторон. расстояние() — это ширина автоматически выделенного расстояния между соседними элементами.

Значения отступов содержимого по умолчанию предоставляются стилем. Значение по умолчанию, указываемое стилями Qt, составляет 9 для дочерних виджетов и 11 для окон. Расстояние по умолчанию равно ширине отступа для верхнего уровня макета или равно ширине отступа родительского макета.

См. также QBoxLayout, QStackedLayout, Управление макетами и Пример базовых макетов.

Документация свойств

horizontalSpacing : int

Это свойство хранит расстояние между виджетами, расположенными рядом.

Если значение не задано явно, горизонтальное расстояние макета наследуется от родительского макета или из настроек стиля родительского виджета.

Это свойство было введено в Qt 4.3.

Функции доступа:

int horizontalSpacing() const
void setHorizontalSpacing(int spacing)

См. также verticalSpacing, QStyle::pixelMetric() и PM_LayoutHorizontalSpacing.

verticalSpacing : int

Это свойство хранит расстояние между виджетами, расположенными друг над другом.

Если значение не задано явно, вертикальное расстояние макета наследуется от родительского макета или из настроек стиля родительского виджета.

Это свойство было введено в Qt 4.3.

Функции доступа:

int verticalSpacing() const
void setVerticalSpacing(int spacing)

См. также horizontalSpacing, QStyle::pixelMetric() и PM_LayoutHorizontalSpacing.

Документация функций-членов

QGridLayout::QGridLayout()

Конструирует новый макет сетки.

Вы должны вставить эту сетку в другой макет. Вы можете вставлять виджеты и макеты в этот макет в любое время, но выравнивание не будет выполнено до тех пор, пока этот макет не будет вставлен в другой макет.

QGridLayout::QGridLayout(QWidget *parent)

Конструирует новый QGridLayout с родительским виджетом parent. Макет изначально имеет одну строку и один столбец и будет расширяться при вставке новых элементов.

[virtual] QGridLayout::~QGridLayout()

Удаляет макет сетки. Управление геометрией завершается, если это сетка верхнего уровня.

Виджеты макета не уничтожаются.

void QGridLayout::addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = Qt::Alignment())

Добавляет item в позицию row, column, занимая rowSpan строк и columnSpan столбцов, и выравнивает его в соответствии с alignment. Если rowSpan и/или columnSpan равно -1, то элемент будет расширяться до нижнего и/или правого края соответственно. Макет принимает во владение item.

Предупреждение: Не используйте эту функцию для добавления дочерних макетов или дочерних элементов виджетов. Используйте addLayout() или addWidget() вместо этого.

[override virtual protected] void QGridLayout::addItem(QLayoutItem *item)

Переопределяет: QLayout::addItem(QLayoutItem *item).

void QGridLayout::addLayout(QLayout *layout, int row, int column, Qt::Alignment alignment = Qt::Alignment())

Размещает layout в позиции (row, column) в сетке. Левый верхний угол — (0, 0).

Выравнивание задаётся параметром alignment. Значение по умолчанию — 0, что означает заполнение всей ячейки.

Неравное нулю значение alignment указывает, что макет не должен расширяться, чтобы заполнить всё доступное пространство, а должен быть размером, соответствующим sizeHint().

layout становится дочерним элементом макета сетки.

void QGridLayout::addLayout(QLayout *layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

Это перегруженная функция.

Этот вариант добавляет макет layout в сетку ячеек, занимая несколько строк/столбцов. Ячейка начнётся с row, column, занимая rowSpan строк и columnSpan столбцов.

Если rowSpan и/или columnSpan равно -1, то макет будет расширяться до нижнего и/или правого края соответственно.

void QGridLayout::addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())

Добавляет указанный widget в ячейку сетки в позиции row, column. Левый верхний угол по умолчанию — (0, 0).

Выравнивание задаётся параметром alignment. Значение по умолчанию — 0, что означает заполнение всей ячейки.

void QGridLayout::addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

Это перегруженная функция.

Этот вариант добавляет указанный widget в сетку ячеек, занимая несколько строк/столбцов. Ячейка начнётся с fromRow, fromColumn, занимая rowSpan строк и columnSpan столбцов. widget будет иметь заданное alignment.

Если rowSpan и/или columnSpan равно -1, то виджет будет расширяться до нижнего и/или правого края соответственно.

QRect QGridLayout::cellRect(int row, int column) const

Возвращает геометрию ячейки со строкой row и столбцом column в сетке. Возвращает недействительный прямоугольник, если row или column находятся вне сетки.

Предупреждение: в текущей версии Qt эта функция не возвращает корректные результаты до тех пор, пока не будет вызван setGeometry(), т. е. после того, как parentWidget() станет видимым.

int QGridLayout::columnCount() const

Возвращает количество столбцов в этой сетке.

int QGridLayout::columnMinimumWidth(int column) const

Возвращает интервал столбцов для столбца column.

См. также setColumnMinimumWidth().

int QGridLayout::columnStretch(int column) const

Возвращает коэффициент растяжения для столбца column.

См. также setColumnStretch().

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

Переопределяет: QLayout::count() const.

[override virtual] Qt::Orientations QGridLayout::expandingDirections() const

Реализует: QLayout::expandingDirections() const.

void QGridLayout::getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const

Возвращает информацию о позиции элемента с заданным index.

Переменные, переданные в качестве row и column, обновляются положением элемента в макете, а переменные rowSpan и columnSpan обновляются вертикальным и горизонтальным интервалом элемента.

См. также itemAtPosition() и itemAt().

[override virtual] bool QGridLayout::hasHeightForWidth() const

Реализует: QLayoutItem::hasHeightForWidth() const.

[override virtual] int QGridLayout::heightForWidth(int w) const

Реализует: QLayoutItem::heightForWidth(int ) const.

[override virtual] void QGridLayout::invalidate()

Реализует: QLayout::invalidate().

[override virtual] QLayoutItem *QGridLayout::itemAt(int index) const

Реализует: QLayout::itemAt(int index) const.

QLayoutItem *QGridLayout::itemAtPosition(int row, int column) const

Возвращает элемент макета, занимающий ячейку (row, column), или nullptr , если ячейка пустая.

Эта функция была добавлена в Qt 4.4.

См. также getItemPosition() и indexOf().

[override virtual] QSize QGridLayout::maximumSize() const

Реализует: QLayout::maximumSize() const.

[override virtual] int QGridLayout::minimumHeightForWidth(int w) const

Реализует: QLayoutItem::minimumHeightForWidth(int w) const.

[override virtual] QSize QGridLayout::minimumSize() const

Реализует: QLayout::minimumSize() const.

Qt::Corner QGridLayout::originCorner() const

Возвращает угол, используемый для начала сетки, т. е. для позиции (0, 0).

См. также setOriginCorner().

int QGridLayout::rowCount() const

Возвращает количество строк в этой сетке.

int QGridLayout::rowMinimumHeight(int row) const

Возвращает минимальную высоту, заданную для строки row.

См. также setRowMinimumHeight().

int QGridLayout::rowStretch(int row) const

Возвращает коэффициент растяжения для строки row.

См. также setRowStretch().

void QGridLayout::setColumnMinimumWidth(int column, int minSize)

Устанавливает минимальную ширину столбца column в minSize пикселей.

См. также columnMinimumWidth() и setRowMinimumHeight().

void QGridLayout::setColumnStretch(int column, int stretch)

Устанавливает коэффициент растяжения столбца column в stretch. Первый столбец имеет номер 0.

Коэффициент растяжения относится к другим столбцам в этой сетке. Столбцы с более высоким коэффициентом растяжения занимают больше места.

Значение по умолчанию для коэффициента растяжения равно 0. Если коэффициент растяжения равен 0, и ни один другой столбец в этой таблице не может увеличиваться, столбец всё равно может увеличиваться.

Альтернативный подход заключается в добавлении отступов с помощью addItem() с помощью QSpacerItem.

См. также columnStretch() и setRowStretch().

[override virtual] void QGridLayout::setGeometry(const QRect &rect)

Реализует: QLayout::setGeometry(const QRect &r).

void QGridLayout::setOriginCorner(Qt::Corner corner)

Устанавливает угол начала сетки, т. е. позицию (0, 0), в corner.

См. также originCorner().

void QGridLayout::setRowMinimumHeight(int row, int minSize)

Устанавливает минимальную высоту строки row в minSize пикселей.

См. также rowMinimumHeight() и setColumnMinimumWidth().

void QGridLayout::setRowStretch(int row, int stretch)

Устанавливает коэффициент растяжения строки row в stretch. Первая строка имеет номер 0.

Коэффициент растяжения относится к другим строкам в этой сетке. Строки с более высоким коэффициентом растяжения занимают больше места.

Значение по умолчанию для коэффициента растяжения равно 0. Если коэффициент растяжения равен 0, и ни одна другая строка в этой таблице не может увеличиваться, строка всё равно может увеличиваться.

См. также rowStretch(), setRowMinimumHeight() и setColumnStretch().

void QGridLayout::setSpacing(int spacing)

Эта функция устанавливает вертикальный и горизонтальный отступ в spacing.

См. также spacing(), setVerticalSpacing() и setHorizontalSpacing().

[override virtual] QSize QGridLayout::sizeHint() const

Реализует: QLayoutItem::sizeHint() const.

int QGridLayout::spacing() const

Если вертикальный отступ равен горизонтальному отступу, эта функция возвращает это значение; в противном случае она возвращает -1.

См. также setSpacing(), verticalSpacing() и horizontalSpacing().

[override virtual] QLayoutItem *QGridLayout::takeAt(int index)

Реализует: QLayout::takeAt(int index).

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qgridlayout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API