Spec-Zone.ru › Qt 5.6

Класс QBoxLayout

Класс QBoxLayout выстраивает дочерние виджеты горизонтально или вертикально. Подробнее...

Заголовок: #include <QBoxLayout>
qmake: QT += widgets
Наследуется от: QLayout
Наследуется в:

QHBoxLayout и QVBoxLayout

  • Список всех членов, включая наследуемые

Типы публичного доступа

перечисление Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop }

Функции публичного доступа

QBoxLayout(Direction dir, QWidget *parent = Q_NULLPTR)
~QBoxLayout()
void addLayout(QLayout *layout, int stretch = 0)
void addSpacerItem(QSpacerItem *spacerItem)
void addSpacing(int size)
void addStretch(int stretch = 0)
void addStrut(int size)
void addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())
Direction direction() const
void insertItem(int index, QLayoutItem *item)
void insertLayout(int index, QLayout *layout, int stretch = 0)

Переопределенные функции публичного доступа

  • 36 функций публичного доступа, унаследованных от QLayout
  • 31 функция публичного доступа, унаследованных от QObject
  • 17 функций публичного доступа, унаследованных от QLayoutItem

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

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

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

Класс QBoxLayout выстраивает дочерние виджеты горизонтально или вертикально.

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

Макет с использованием горизонтального расположения с пятью дочерними виджетами

Если ориентация QBoxLayout — Qt::Horizontal, блоки располагаются в строку с подходящими размерами. Каждый виджет (или другой блок) получит как минимум свой минимальный размер и как максимум — максимальный размер. Любое свободное пространство делится в соответствии с коэффициентами растяжения (подробнее об этом ниже).

Макет с использованием вертикального расположения с пятью дочерними виджетами

Если ориентация QBoxLayout — Qt::Vertical, блоки располагаются в колонку с подходящими размерами.

Самый простой способ создать QBoxLayout — использовать один из удобных классов, например, QHBoxLayout (для Qt::Horizontal блоков) или QVBoxLayout (для Qt::Vertical блоков). Вы также можете напрямую использовать конструктор QBoxLayout, указав его направление как LeftToRight, RightToLeft, TopToBottom или BottomToTop.

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

После этого вы можете добавлять блоки в QBoxLayout с помощью одной из четырёх функций:

  • addWidget() для добавления виджета в QBoxLayout и установки коэффициента растяжения виджета. (Коэффициент растяжения относится к строке блоков.)
  • addSpacing() для создания пустого блока; эта функция используется для создания красивых и просторных диалоговых окон. Ниже приведены способы установки отступов.
  • addStretch() для создания пустого, растягиваемого блока.
  • addLayout() для добавления блока, содержащего другой QLayout, в строку и установки коэффициента растяжения этого макета.

Используйте insertWidget(), insertSpacing(), insertStretch() или insertLayout() для вставки блока в заданную позицию в макете.

QBoxLayout также включает два значения ширины отступа:

  • setContentsMargins() устанавливает ширину внешней границы с каждой стороны виджета. Это ширина резервированного пространства по каждой из четырёх сторон QBoxLayout.
  • setSpacing() устанавливает ширину между соседними блоками. (Вы можете использовать addSpacing() для получения большего пространства в определённой точке.)

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

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

Практически всегда стоит использовать QVBoxLayout и QHBoxLayout вместо QBoxLayout из-за удобства их конструкторов.

См. также QGridLayout, QStackedLayout и Управление макетами.

Документация по типам членов

перечисление QBoxLayout::Direction

Этот тип используется для определения направления макета блока.

Постоянная Значение Описание
QBoxLayout::LeftToRight 0 Горизонтально слева направо.
QBoxLayout::RightToLeft 1 Горизонтально справа налево.
QBoxLayout::TopToBottom 2 Вертикально сверху вниз.
QBoxLayout::BottomToTop 3 Вертикально снизу вверх.

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

QBoxLayout::QBoxLayout(Direction dir, QWidget *parent = Q_NULLPTR)

Создаёт новый QBoxLayout с направлением dir и родительским виджетом parent.

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

QBoxLayout::~QBoxLayout()

Удаляет этот макет блока.

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

[virtual] void QBoxLayout::addItem(QLayoutItem *item)

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

void QBoxLayout::addLayout(QLayout *layout, int stretch = 0)

Добавляет layout в конец блока с коэффициентом растяжения stretch.

См. также insertLayout(), addItem() и addWidget().

void QBoxLayout::addSpacerItem(QSpacerItem *spacerItem)

Добавляет spacerItem в конец этого макета блока.

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

См. также addSpacing() и addStretch().

void QBoxLayout::addSpacing(int size)

Добавляет непротягиваемое пространство (QSpacerItem) размером size в конец этого макета блока. QBoxLayout предоставляет значения отступа и интервала по умолчанию. Эта функция добавляет дополнительное пространство.

См. также insertSpacing(), addItem() и QSpacerItem.

END_OF_DOCUMENT_MARKER

void QBoxLayout::addStretch(int stretch = 0)

Добавляет растяжимое пространство (элемент QSpacerItem) с нулевым минимальным размером и коэффициентом растяжения stretch в конец этого макета.

См. также insertStretch(), addItem() и QSpacerItem.

void QBoxLayout::addStrut(int size)

Ограничивает перпендикулярную размерность ящика (например, высоту, если ящик имеет направление LeftToRight) до минимального значения size. Другие ограничения могут увеличить эту границу.

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

void QBoxLayout::addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())

Добавляет widget в конец этого макета с коэффициентом растяжения stretch и выравниванием alignment.

Коэффициент растяжения применяется только в направлении направления QBoxLayout и относится к другим ящикам и виджетам в этом QBoxLayout. Виджеты и ящики с более высокими коэффициентами растяжения будут расти больше.

Если коэффициент растяжения равен 0, и ни у чего другого в QBoxLayout нет коэффициента растяжения, большего нуля, пространство распределяется в соответствии с QWidget:sizePolicy() каждого участвующего виджета.

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

См. также insertWidget(), addItem(), addLayout(), addStretch(), addSpacing() и addStrut().

[virtual] int QBoxLayout::count() const

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

Direction QBoxLayout::direction() const

Возвращает направление ящика. addWidget() и addSpacing() работают в этом направлении; растяжение происходит в этом направлении.

См. также setDirection(), QBoxLayout::Direction, addWidget() и addSpacing().

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

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

[virtual] bool QBoxLayout::hasHeightForWidth() const

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

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

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

void QBoxLayout::insertItem(int index, QLayoutItem *item)

Вставляет item в этот макет в позицию index. Если index отрицателен, элемент добавляется в конец.

См. также addItem(), insertWidget(), insertLayout(), insertStretch() и insertSpacing().

void QBoxLayout::insertLayout(int index, QLayout *layout, int stretch = 0)

Вставляет layout в позицию index с коэффициентом растяжения stretch. Если index отрицателен, макет добавляется в конец.

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

См. также addLayout() и insertItem().

void QBoxLayout::insertSpacerItem(int index, QSpacerItem *spacerItem)

Вставляет spacerItem в позицию index с нулевым минимальным размером и коэффициентом растяжения. Если index отрицателен, пространство добавляется в конец.

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

См. также addSpacerItem(), insertStretch() и insertSpacing().

void QBoxLayout::insertSpacing(int index, int size)

Вставляет нерастяжимое пространство (элемент QSpacerItem) в позицию index с размером size. Если index отрицателен, пространство добавляется в конец.

Макет имеет стандартные отступы и интервалы. Эта функция добавляет дополнительное пространство.

См. также addSpacing(), insertItem() и QSpacerItem.

void QBoxLayout::insertStretch(int index, int stretch = 0)

Вставляет растяжимое пространство (элемент QSpacerItem) в позицию index с нулевым минимальным размером и коэффициентом растяжения stretch. Если index отрицателен, пространство добавляется в конец.

См. также addStretch(), insertItem() и QSpacerItem.

void QBoxLayout::insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())

Вставляет widget в позицию index с коэффициентом растяжения stretch и выравниванием alignment. Если index отрицателен, виджет добавляется в конец.

Коэффициент растяжения применяется только в направлении направления QBoxLayout и относится к другим ящикам и виджетам в этом QBoxLayout. Виджеты и ящики с более высокими коэффициентами растяжения будут расти больше.

Если коэффициент растяжения равен 0, и ни у чего другого в QBoxLayout нет коэффициента растяжения, большего нуля, пространство распределяется в соответствии с QWidget:sizePolicy() каждого участвующего виджета.

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

См. также addWidget() и insertItem().

[virtual] void QBoxLayout::invalidate()

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

Сбрасывает кэшированную информацию.

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

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

[virtual] QSize QBoxLayout::maximumSize() const

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

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

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

[virtual] QSize QBoxLayout::minimumSize() const

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

void QBoxLayout::setDirection(Direction direction)

Устанавливает направление этого макета на direction.

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

[virtual] void QBoxLayout::setGeometry(const QRect &r)

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

void QBoxLayout::setSpacing(int spacing)

Переопределяет QLayout::setSpacing(). Устанавливает свойство интервала на spacing.

См. также QLayout::setSpacing() и spacing().

void QBoxLayout::setStretch(int index, int stretch)

Устанавливает коэффициент растяжения в позиции index на stretch.

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

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

bool QBoxLayout::setStretchFactor(QWidget *widget, int stretch)

Устанавливает коэффициент растяжения для widget на stretch и возвращает true, если widget найден в этом макете (исключая дочерние макеты); в противном случае возвращает false.

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

END_OF_DOCUMENT_MARKER

bool QBoxLayout::setStretchFactor(QLayout *layout, int stretch)

Это перегруженный метод.

Устанавливает коэффициент растяжения для макета layout на значение stretch и возвращает true если layout найден в этом макете (не включая дочерние макеты); в противном случае возвращает false.

[virtual] QSize QBoxLayout::sizeHint() const

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

int QBoxLayout::spacing() const

Реализует QLayout::spacing(). Если свойство отступа имеет значение, возвращается это значение. В противном случае вычисляется значение для свойства отступа и возвращается. Поскольку отступ макета в виджете зависит от стиля, если родительский элемент — виджет, он запрашивает у стиля значение (горизонтального или вертикального) отступа макета. В противном случае, родительский элемент — макет, и он запрашивает у родительского макета значение spacing().

См. также QLayout::spacing() и setSpacing().

int QBoxLayout::stretch(int index) const

Возвращает коэффициент растяжения в позиции index.

Этот метод был введён в Qt 4.5.

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

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

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

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

Spec-Zone.ru

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