Spec-Zone.ru › Qt 5.9

Класс QGridLayout

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

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

Свойства

  • horizontalSpacing : int
  • verticalSpacing : int
  • 2 свойства унаследованы от QLayout
  • 1 свойство унаследовано от QObject

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

QGridLayout(QWidget *parent)
QGridLayout()
~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
virtual Qt::Orientations expandingDirections() const
virtual bool hasHeightForWidth() const
virtual int heightForWidth(int w) const
virtual void invalidate()
virtual QLayoutItem * itemAt(int index) const
virtual QSize maximumSize() const
virtual int minimumHeightForWidth(int w) const
virtual QSize minimumSize() const
virtual void setGeometry(const QRect &rect)
virtual QSize sizeHint() const
virtual QLayoutItem * takeAt(int index)
  • 36 открытых функций унаследованы от QLayout
  • 32 открытых функции унаследованы от QObject
  • 17 открытых функций унаследованы от QLayoutItem

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

virtual void addItem(QLayoutItem *item)
  • 4 защищённых функции унаследованы от QLayout
  • 9 защищённых функций унаследованы от QObject

Дополнительные наследуемые члены

  • 1 открытый слот унаследован от QObject
  • 2 сигнала унаследованы от QObject
  • 1 статический открытый член унаследован от QLayout
  • 11 статических открытых членов унаследованы от QObject
  • 4 защищённых функции унаследованы от QLayout
  • 9 защищённых функций унаследованы от QObject

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

Класс QGridLayout размещает виджеты в таблице.

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

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

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

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

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

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

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(QWidget *parent)

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

QGridLayout::QGridLayout()

Создает новый макет сетки.

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

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() вместо этого.

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

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

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

Размещает layout в позиции (row, column) в сетке. Верхняя левая позиция — (0, 0).

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

Значение выравнивания, отличное от нуля, указывает, что макет не должен расширяться до заполнения доступного пространства, а должен быть размером в соответствии с 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().

[virtual] int QGridLayout::count() const

Переопределено из QLayout::count().

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

Переопределено из QLayoutItem::expandingDirections().

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

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

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

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

[virtual] bool QGridLayout::hasHeightForWidth() const

Переопределено из QLayoutItem::hasHeightForWidth().

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

Переопределено из QLayoutItem::heightForWidth().

[virtual] void QGridLayout::invalidate()

Переопределено из QLayoutItem::invalidate().

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

Переопределено из QLayout::itemAt().

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

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

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

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

[virtual] QSize QGridLayout::maximumSize() const

Переопределено из QLayoutItem::maximumSize().

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

Переопределено из QLayoutItem::minimumHeightForWidth().

[virtual] QSize QGridLayout::minimumSize() const

Переопределено из QLayoutItem::minimumSize().

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

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

Переопределено из QLayoutItem::setGeometry().

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

[virtual] QSize QGridLayout::sizeHint() const

Переопределено из QLayoutItem::sizeHint().

int QGridLayout::spacing() const

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

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

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

Переопределено из QLayout::takeAt().

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

Spec-Zone.ru

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