Spec-Zone.ru › Qt 5.9

Класс QBoxLayout

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

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

QHBoxLayout и QVBoxLayout

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

Открытые типы

enum 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)
void insertSpacerItem(int index, QSpacerItem *spacerItem)
void insertSpacing(int index, int size)
void insertStretch(int index, int stretch = 0)
void insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())
void setDirection(Direction direction)
void setSpacing(int spacing)
void setStretch(int index, int stretch)
bool setStretchFactor(QWidget *widget, int stretch)
bool setStretchFactor(QLayout *layout, int stretch)
int spacing() const
int stretch(int index) const

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

virtual void addItem(QLayoutItem *item)
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 &r)
virtual QSize sizeHint() const
virtual QLayoutItem * takeAt(int index)
  • 36 открытых функций, унаследованных от QLayout
  • 32 открытых функций, унаследованных от QObject
  • 17 открытых функций, унаследованных от QLayoutItem

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

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

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

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

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

Horizontal box layout with five child widgets

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

Vertical box layout with five child widgets

Если ориентация 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)

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

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

void QBoxLayout::addStretch(int stretch = 0)

Добавляет растягиваемое пространство (a 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.

Коэффициент растяжения применяется только в направлении direction 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 отрицательное, пространство добавляется в конец.

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

См. также 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 отрицательное, виджет добавляется в конец.

Коэффициент растяжения применяется только в направлении direction макета 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().

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

См. также 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/qt-5.9/qboxlayout.html

Spec-Zone.ru

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