Класс QLayoutItem
Класс QLayoutItem предоставляет абстрактный элемент, который манипулирует QLayout. Подробнее...
| Заголовок: | #include <QLayoutItem> |
| 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() |
Подробное описание
Используется настраиваемыми макетами.
Предоставляются чисто виртуальные функции для получения информации о макете, включая sizeHint(), minimumSize(), maximumSize() и expanding().
Геометрию макета можно установить и получить с помощью setGeometry() и geometry(), а выравнивание с помощью setAlignment() и alignment().
isEmpty() возвращает значение, если элемент макета пуст. Если конкретный элемент — QWidget, его можно получить с помощью widget(). Аналогично для layout() и spacerItem().
У некоторых макетов существуют взаимозависимости ширины и высоты. Их можно выразить с помощью hasHeightForWidth(), heightForWidth() и minimumHeightForWidth(). Более подробное объяснение можно найти в статье Qt Quarterly «Торговля высотой за ширину».
См. также 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) {
// not all C++ compilers support "mutable"
MyLayout *that = (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()
Если этот элемент управляет 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-5.14/qlayoutitem.html