Класс 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 w) 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() |
Подробное описание
Класс QLayoutItem предоставляет абстрактный элемент, с которым манипулирует класс QLayout.
Используется пользовательскими макетами.
Предоставляются чистые виртуальные функции для возвращения информации о макете, включая sizeHint(), minimumSize(), maximumSize() и expanding().
Геометрию макета можно установить и получить с помощью setGeometry() и geometry(), а его выравнивание — с помощью setAlignment() и alignment().
isEmpty() возвращает значение true, если элемент макета пустой, иначе false. Если конкретный элемент — это QWidget, его можно получить с помощью widget(). Аналогично для layout() и spacerItem().
В некоторых макетах существуют взаимозависимости ширины и высоты. Они могут быть выражены с помощью hasHeightForWidth(), heightForWidth() и minimumHeightForWidth(). Более подробная информация представлена в статье Trading Height for Width в журнале 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
Возвращает значение true, если этот элемент макета может использовать больше места, чем 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 w) const
Возвращает предпочтительную высоту элемента макета, учитывая ширину w.
По умолчанию возвращает -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
Реализовано в подклассах для возвращения значения true, если этот элемент пустой, т.е. если он не содержит никаких виджетов.
[virtual] QLayout *QLayoutItem::layout()
Если этот элемент является QLayout, он возвращается как QLayout; в противном случае возвращается 0. Эта функция обеспечивает безопасный ввод типов.
См. также 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; в противном случае возвращается 0. Эта функция обеспечивает безопасный приведение типов.
См. также 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.9/qlayoutitem.html