Класс QLayoutItem
Класс QLayoutItem предоставляет абстрактный элемент, который манипулирует QLayout. Подробнее...
| Заголовок: | #include <QLayoutItem> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: |
Открытые функции
| QLayoutItem(Qt::Alignment alignment = Qt::Alignment()) | |
| virtual | ~QLayoutItem() |
| Qt::Alignment | alignment() const |
| virtual QSizePolicy::ControlTypes | controlTypes() const |
| virtual Qt::Orientations | expandingDirections() const = 0 |
| virtual QRect | geometry() const = 0 |
| virtual bool | hasHeightForWidth() const |
| virtual int | heightForWidth(int) const |
| virtual void | invalidate() |
| virtual bool | isEmpty() const = 0 |
| virtual QLayout * | layout() |
| virtual QSize | maximumSize() const = 0 |
| virtual int | minimumHeightForWidth(int w) const |
| virtual QSize | minimumSize() const = 0 |
| void | setAlignment(Qt::Alignment alignment) |
| virtual void | setGeometry(const QRect &r) = 0 |
| virtual QSize | sizeHint() const = 0 |
| virtual QSpacerItem * | spacerItem() |
| virtual QWidget * | widget() const |
Подробное описание
Используется пользовательскими макетами.
Предоставляются чисто виртуальные функции для возвращения информации о макете, включая sizeHint(), minimumSize(), maximumSize() и expanding().
Геометрию макета можно задать и получить с помощью setGeometry() и geometry(), а её выравнивание с помощью setAlignment() и alignment().
isEmpty() возвращает, является ли элемент макета пустым. Если конкретный элемент — QWidget, его можно получить с помощью widget(). Аналогично для layout() и spacerItem().
В некоторых макетах существуют взаимозависимости ширины и высоты. Их можно выразить с помощью hasHeightForWidth(), heightForWidth() и minimumHeightForWidth(). Более подробная информация представлена в статье Qt Quarterly Trading Height for Width.
См. также QLayout.
Документация по функциям-членам
QLayoutItem::QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
Конструирует элемент макета с alignment. Не все подклассы поддерживают выравнивание.
[virtual] QLayoutItem::~QLayoutItem()
Удаляет QLayoutItem.
Qt::Alignment QLayoutItem::alignment() const
Возвращает выравнивание этого элемента.
См. также setAlignment().
[virtual] QSizePolicy::ControlTypes QLayoutItem::controlTypes() const
Возвращает тип(ы) управления для элемента макета. Для QWidgetItem тип управления берётся из политики размера виджета; для QLayoutItem типы управления выведены из содержимого макета.
См. также QSizePolicy::controlType().
[pure virtual] Qt::Orientations QLayoutItem::expandingDirections() const
Возвращает, может ли этот элемент макета использовать больше места, чем sizeHint(). Значение Qt::Vertical или Qt::Horizontal означает, что он хочет расти только в одном измерении, в то время как Qt::Vertical | Qt::Horizontal означает, что он хочет расти по обоим измерениям.
[pure virtual] QRect QLayoutItem::geometry() const
Возвращает прямоугольник, занимаемый этим элементом макета.
См. также setGeometry().
[virtual] bool QLayoutItem::hasHeightForWidth() const
Возвращает true , если предпочтительная высота этого макета зависит от его ширины; в противном случае возвращает false. По умолчанию возвращается false.
Переопределите эту функцию в менеджерах макетов, которые поддерживают высоту по ширине.
См. также heightForWidth() и QWidget::heightForWidth().
[virtual] int QLayoutItem::heightForWidth(int) const
Возвращает предпочтительную высоту этого элемента макета, учитывая ширину, которая в этом реализации не используется.
По умолчанию возвращает -1, что означает, что предпочтительная высота не зависит от ширины элемента. Используя функцию hasHeightForWidth() обычно будет намного быстрее, чем вызов этой функции и проверка на -1.
Переопределите эту функцию в менеджерах макетов, которые поддерживают высоту по ширине. Типичная реализация будет выглядеть так:
int MyLayout::heightForWidth(int w) const
{
if (cache_dirty || cached_width != w) {
MyLayout *that = const_cast<MyLayout *>(this);
int h = calculateHeightForWidth(w);
that->cached_hfw = h;
return h;
}
return cached_hfw;
} Кэширование настоятельно рекомендуется; без него макет будет занимать экспоненциальное время.
См. также hasHeightForWidth().
[virtual] void QLayoutItem::invalidate()
Аннулирует любые кэшированные данные в этом элементе макета.
[pure virtual] bool QLayoutItem::isEmpty() const
Реализовано в подклассах для возвращения значения, указывает ли этот элемент пустой, то есть содержит ли он какие-либо виджеты.
[virtual] QLayout *QLayoutItem::layout()
Если этот элемент является QLayout, он возвращается как QLayout; в противном случае nullptr возвращается. Эта функция обеспечивает безопасный тип приведения.
См. также spacerItem() и widget().
[pure virtual] QSize QLayoutItem::maximumSize() const
Реализовано в подклассах для возвращения максимального размера этого элемента.
[virtual] int QLayoutItem::minimumHeightForWidth(int w) const
Возвращает минимальную высоту, необходимую этому виджету для заданной ширины, w. По умолчанию просто возвращает heightForWidth(w).
[pure virtual] QSize QLayoutItem::minimumSize() const
Реализовано в подклассах для возвращения минимального размера этого элемента.
void QLayoutItem::setAlignment(Qt::Alignment alignment)
Устанавливает выравнивание этого элемента по alignment.
Примечание: Выравнивание элемента поддерживается только подклассами QLayoutItem, где оно оказывает визуальное воздействие. За исключением QSpacerItem, который предоставляет пустое пространство для макетов, все публичные классы Qt, наследующие от QLayoutItem, поддерживают выравнивание элементов.
См. также alignment().
[pure virtual] void QLayoutItem::setGeometry(const QRect &r)
Реализовано в подклассах для установки геометрии этого элемента на r.
См. также geometry().
[pure virtual] QSize QLayoutItem::sizeHint() const
Реализовано в подклассах для возвращения предпочтительного размера этого элемента.
[virtual] QSpacerItem *QLayoutItem::spacerItem()
Если этот элемент является QSpacerItem, он возвращается как QSpacerItem; в противном случае nullptr возвращается. Эта функция предоставляет безопасный в типе вывод.
См. также layout() и widget().
[virtual] QWidget *QLayoutItem::widget() const
Если этот элемент управляет QWidget, возвращает этот виджет. В противном случае, nullptr возвращается.
Примечание: Хотя функции layout() и spacerItem() выполняют приведение типов, эта функция возвращает другой объект: QLayout и QSpacerItem наследуют от QLayoutItem, а QWidget - нет.
См. также layout() и spacerItem().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qlayoutitem.html