Spec-Zone.ru › Qt 6.1

Класс QGraphicsLayoutItem

Класс QGraphicsLayoutItem может быть унаследован, чтобы позволить вашим пользовательским элементам управляться макетами. Подробнее...

Заголовок: #include <QGraphicsLayoutItem>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследуется:

QGraphicsLayout и QGraphicsWidget

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

Открытые функции

QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
virtual ~QGraphicsLayoutItem()
QRectF contentsRect() const
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QRectF geometry() const
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsItem * graphicsItem() const
virtual bool isEmpty() const
bool isLayout() const
qreal maximumHeight() const
QSizeF maximumSize() const
qreal maximumWidth() const
qreal minimumHeight() const
QSizeF minimumSize() const
qreal minimumWidth() const
bool ownedByLayout() const
QGraphicsLayoutItem * parentLayoutItem() const
qreal preferredHeight() const
QSizeF preferredSize() const
qreal preferredWidth() const
virtual void setGeometry(const QRectF &rect)
void setMaximumHeight(qreal height)
void setMaximumSize(const QSizeF &size)
void setMaximumSize(qreal w, qreal h)
void setMaximumWidth(qreal width)
void setMinimumHeight(qreal height)
void setMinimumSize(const QSizeF &size)
void setMinimumSize(qreal w, qreal h)
void setMinimumWidth(qreal width)
void setParentLayoutItem(QGraphicsLayoutItem *parent)
void setPreferredHeight(qreal height)
void setPreferredSize(const QSizeF &size)
void setPreferredSize(qreal w, qreal h)
void setPreferredWidth(qreal width)
void setSizePolicy(const QSizePolicy &policy)
void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
QSizePolicy sizePolicy() const
virtual void updateGeometry()

Защищенные функции

void setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

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

QGraphicsLayoutItem — это абстрактный класс, который определяет набор виртуальных функций, описывающих размеры, политики размеров и подсказки размеров для любого объекта, упорядоченного с помощью QGraphicsLayout. API содержит функции, актуальные как для самого элемента, так и для пользователя элемента, поскольку большинство функций QGraphicsLayoutItem также являются частью открытого API подкласса.

В большинстве случаев существующие классы, поддерживающие макеты, такие как QGraphicsWidget и QGraphicsLayout, уже предоставляют необходимый функционал. Однако создание подклассов этих классов позволит вам создавать как графические элементы, которые хорошо работают с макетами (QGraphicsWidget), так и пользовательские макеты (QGraphicsLayout).

Создание подкласса QGraphicsLayoutItem

Если вы создадите подкласс QGraphicsLayoutItem и переопределите его виртуальные функции, вы позволите макету изменять размер и позиционировать ваш элемент вместе с другими QGraphicsLayoutItems, включая QGraphicsWidget и QGraphicsLayout.

Вы можете начать с переопределения важных функций: защищенной функции sizeHint(), а также открытой функции setGeometry(). Если вы хотите, чтобы ваши элементы были осведомлены о немедленных изменениях геометрии, вы также можете переопределить updateGeometry().

Геометрия, подсказка размера и политика размера влияют на размер и положение элемента. Вызов setGeometry() всегда будет немедленно изменять размер и позиционировать элемент. Обычно эта функция вызывается QGraphicsLayout после активации макета, но она также может вызываться пользователем элемента в любое время.

Функция sizeHint() возвращает минимальные, предпочтительные и максимальные размеры элемента. Вы можете переопределить эти свойства, вызвав setMinimumSize(), setPreferredSize() или setMaximumSize(). Также можно использовать функции, такие как setMinimumWidth() или setMaximumHeight(), чтобы установить только ширину или высоту, если это необходимо.

Функция effectiveSizeHint() возвращает размер, соответствующий заданному значению Qt::SizeHint, и гарантирует, что возвращаемый размер ограничен минимальными и максимальными размерами и размерами подсказок. Вы можете установить политику размера элемента по вертикали и горизонтали, вызвав setSizePolicy(). Свойство sizePolicy используется системой макета для описания того, как этот элемент предпочитает расти или сжиматься.

Вложенные элементы QGraphicsLayoutItems

Элементы QGraphicsLayoutItems могут быть вложены в другие элементы QGraphicsLayoutItems, подобно макетам, которые могут содержать вложенные макеты. Это делается либо путём передачи указателя QGraphicsLayoutItem в защищённый конструктор QGraphicsLayoutItem, либо путём вызова setParentLayoutItem(). Функция parentLayoutItem() возвращает указатель на родительский элемент макета. Если родительский элемент равен nullptr или если родитель не наследует от QGraphicsItem, функция parentLayoutItem() возвращает nullptr. isLayout() возвращает true, если подкласс QGraphicsLayoutItem является макетом, или false в противном случае.

Qt использует QGraphicsLayoutItem для обеспечения функциональности макета в Graphics View Framework, но в будущем его использование может распространиться на сам Qt.

См. также QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout и QGraphicsGridLayout.

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

QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)

Конструирует объект QGraphicsLayoutItem. parent становится родителем объекта. Если isLayout равно true, элемент является макетом, в противном случае isLayout равно false.

[virtual] QGraphicsLayoutItem::~QGraphicsLayoutItem()

Уничтожает объект QGraphicsLayoutItem.

QRectF QGraphicsLayoutItem::contentsRect() const

Возвращает прямоугольник содержимого в локальных координатах.

Прямоугольник содержимого определяет подпрямоугольник, используемый связанным макетом при расположении дочерних элементов. Эта функция является вспомогательной функцией, которая корректирует геометрию элемента (geometry()) на основе отступов содержимого. Обратите внимание, что getContentsMargins() — это виртуальная функция, которую вы можете переопределить, чтобы вернуть отступы содержимого элемента.

См. также getContentsMargins() и geometry().

QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Возвращает эффективную подсказку размера для этого QGraphicsLayoutItem.

which — это подсказка размера. constraint — необязательный аргумент, определяющий специальное ограничение при расчёте эффективной подсказки размера. По умолчанию constraint — QSizeF(-1, -1), что означает отсутствие ограничения для подсказки размера.

Если вы хотите указать размер элемента для заданной ширины или высоты, вы можете указать фиксированное значение в constraint. Это полезно для элементов, которые могут расти только по вертикали или горизонтали и нуждаются в установке ширины или высоты в определённое значение.

Например, элемент абзаца текста, помещаемый в столбец шириной 200, может расти по вертикали. Вы можете передать QSizeF(200, -1) как ограничение, чтобы получить подходящую минимальную, предпочтительную и максимальную высоту.

Вы можете скорректировать эффективную подсказку размера, переопределяя sizeHint() в подклассе QGraphicsLayoutItem или вызвав одну из следующих функций: setMinimumSize(), setPreferredSize или setMaximumSize() (или их комбинацию).

Эта функция кэширует каждую из подсказок размера и гарантирует, что sizeHint() будет вызвана только один раз для каждого значения which — если не указано constraint и не был вызван updateGeometry().

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

QRectF QGraphicsLayoutItem::geometry() const

Возвращает геометрию элемента (например, положение и размер) в виде QRectF. Эта функция эквивалентна QRectF(pos(), size()).

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

[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

Эта виртуальная функция предоставляет отступы содержимого left, top, right и bottom для этого QGraphicsLayoutItem. Реализация по умолчанию предполагает, что все отступы содержимого равны 0. Параметры указывают на значения, хранящиеся в qreals. Если какой-либо из указателей равен nullptr, это значение не будет обновлено.

См. также QGraphicsWidget::setContentsMargins().

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

Возвращает QGraphicsItem, который представляет этот элемент макета. Для QGraphicsWidget он вернёт себя. Для пользовательских элементов он может вернуть агрегированное значение.

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

[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const

Возвращает true если этот элемент пуст, то есть у него нет содержимого и он не должен занимать никакого места.

Реализация по умолчанию возвращает true true, если элемент скрыт, если его политика размера (sizePolicy) не имеет retainSizeWhenHidden, установленного в true

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

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

bool QGraphicsLayoutItem::isLayout() const

Возвращает true если этот QGraphicsLayoutItem является макетом (например, наследуется от объекта, который организует другие объекты QGraphicsLayoutItem); в противном случае возвращает false.

См. также QGraphicsLayout.

qreal QGraphicsLayoutItem::maximumHeight() const

Возвращает максимальную высоту.

См. также setMaximumHeight(), setMaximumSize() и maximumSize().

QSizeF QGraphicsLayoutItem::maximumSize() const

Возвращает максимальный размер.

См. также setMaximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize и sizeHint().

qreal QGraphicsLayoutItem::maximumWidth() const

Возвращает максимальную ширину.

См. также setMaximumWidth(), setMaximumSize() и maximumSize().

qreal QGraphicsLayoutItem::minimumHeight() const

Возвращает минимальную высоту.

См. также setMinimumHeight(), setMinimumSize() и minimumSize().

QSizeF QGraphicsLayoutItem::minimumSize() const

Возвращает минимальный размер.

См. также setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize и sizeHint().

qreal QGraphicsLayoutItem::minimumWidth() const

Возвращает минимальную ширину.

См. также setMinimumWidth(), setMinimumSize() и minimumSize().

bool QGraphicsLayoutItem::ownedByLayout() const

Возвращает, должен ли макет удалить этот элемент в своём деструкторе. Если значение true, макет удалит его. Если false, предполагается, что владелец этого элемента — другой объект, и макет не будет удалять этот элемент.

Если элемент наследует как QGraphicsItem, так и QGraphicsLayoutItem (например, QGraphicsWidget), этот элемент действительно входит в две иерархии владения. Этот свойство указывает, что макет должен делать со своими дочерними элементами при уничтожении. В случае с QGraphicsWidget предпочтительно, чтобы при удалении макета он не удалял свои дочерние элементы (поскольку они также являются частью иерархии элементов графики).

По умолчанию это значение инициализируется false в QGraphicsLayoutItem, но оно переопределяется QGraphicsLayout на true. Это потому, что QGraphicsLayout обычно не входит в иерархию QGraphicsItem, поэтому родительский макет должен его удалить. Подклассы могут переопределить это поведение по умолчанию, вызвав setOwnedByLayout(true).

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

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

Возвращает родителя данного QGraphicsLayoutItem, или nullptr, если родителя нет или родитель не наследует от QGraphicsLayoutItem (QGraphicsLayoutItem часто используется через множественное наследование с классами, производными от QObject).

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

qreal QGraphicsLayoutItem::preferredHeight() const

Возвращает предпочтительную высоту.

См. также setPreferredHeight(), setPreferredSize() и preferredSize().

QSizeF QGraphicsLayoutItem::preferredSize() const

Возвращает предпочтительный размер.

См. также setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize и sizeHint().

qreal QGraphicsLayoutItem::preferredWidth() const

Возвращает предпочтительную ширину.

См. также setPreferredWidth(), setPreferredSize() и preferredSize().

[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)

Этот виртуальный метод устанавливает геометрию QGraphicsLayoutItem в rect, которая задана в координатах родителя (например, верхний левый угол rect эквивалентен позиции элемента в координатах родителя).

Вы должны переопределить этот метод в подклассе QGraphicsLayoutItem, чтобы получать обновления геометрии. Макет вызовет этот метод при переупорядочении.

Если rect находится за пределами границ minimumSize и maximumSize, она будет скорректирована до ближайшего размера, чтобы находиться в допустимых пределах.

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

[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)

Если QGraphicsLayoutItem представляет QGraphicsItem и хочет использовать автоматические возможности переопределения родителя QGraphicsLayout, он должен установить это значение. Обратите внимание, что если вы удаляете item, а не элемент макета, вы ответственны за вызов setGraphicsItem(nullptr) для предотвращения появления висячей ссылки.

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

void QGraphicsLayoutItem::setMaximumHeight(qreal height)

Устанавливает максимальную высоту в height.

См. также maximumHeight(), setMaximumSize() и maximumSize().

void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)

Устанавливает максимальный размер в size. Это свойство переопределяет sizeHint() для Qt::MaximumSize и гарантирует, что effectiveSizeHint() никогда не вернёт размер, больший, чем size. Для отмены максимального размера используйте недопустимый размер.

См. также maximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize и sizeHint().

void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)

Эта вспомогательная функция эквивалентна вызову setMaximumSize(QSizeF(w, h)).

См. также maximumSize(), setMinimumSize(), setPreferredSize() и sizeHint().

void QGraphicsLayoutItem::setMaximumWidth(qreal width)

Устанавливает максимальную ширину в width.

См. также maximumWidth(), setMaximumSize() и maximumSize().

void QGraphicsLayoutItem::setMinimumHeight(qreal height)

Устанавливает минимальную высоту в height.

См. также minimumHeight(), setMinimumSize() и minimumSize().

void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)

Устанавливает минимальный размер в size. Это свойство переопределяет sizeHint() для Qt::MinimumSize и гарантирует, что effectiveSizeHint() никогда не вернёт размер, меньший, чем size. Для отмены минимального размера используйте недопустимый размер.

См. также minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth() и setMinimumHeight().

void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)

Эта вспомогательная функция эквивалентна вызову setMinimumSize(QSizeF(w, h)).

См. также minimumSize(), setMaximumSize(), setPreferredSize() и sizeHint().

void QGraphicsLayoutItem::setMinimumWidth(qreal width)

Устанавливает минимальную ширину в width.

См. также minimumWidth(), setMinimumSize() и minimumSize().

[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)

Устанавливает, должен ли макет удалить этот элемент в своём деструкторе. ownership должно быть true, чтобы макет мог удалить его.

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

void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)

Устанавливает родителя данного QGraphicsLayoutItem в parent.

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

void QGraphicsLayoutItem::setPreferredHeight(qreal height)

Устанавливает предпочтительную высоту в height.

См. также preferredHeight(), preferredWidth(), setPreferredSize() и preferredSize().

void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)

Устанавливает предпочтительный размер на size. Это свойство переопределяет sizeHint() для Qt::PreferredSize и предоставляет значение по умолчанию для effectiveSizeHint(). Для отмены установки предпочтительного размера используйте недопустимый размер.

См. также preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize и sizeHint().

void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)

Эта вспомогательная функция эквивалентна вызову setPreferredSize(QSizeF(w, h)).

См. также preferredSize(), setMaximumSize(), setMinimumSize() и sizeHint().

void QGraphicsLayoutItem::setPreferredWidth(qreal width)

Устанавливает предпочтительную ширину на width.

См. также preferredWidth(), preferredHeight(), setPreferredSize() и preferredSize().

void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)

Устанавливает политику размера на policy. Политика размера описывает, как элемент должен расти по горизонтали и вертикали при размещении в макете.

QGraphicsLayoutItem's политика размера по умолчанию — (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), но подклассы часто изменяют значение по умолчанию. Например, QGraphicsWidget использует (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType) по умолчанию.

См. также sizePolicy() и QWidget::sizePolicy().

void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)

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

Эта функция эквивалентна вызову setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType)).

См. также sizePolicy() и QWidget::sizePolicy().

QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Этот чистый виртуальный метод возвращает подсказку размера для which QGraphicsLayoutItem, используя ширину или высоту constraint для ограничения результата.

Переопределите этот метод в подклассе QGraphicsLayoutItem, чтобы предоставить необходимые подсказки размера для ваших элементов.

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

QSizePolicy QGraphicsLayoutItem::sizePolicy() const

Возвращает текущую политику размера.

См. также setSizePolicy() и QWidget::sizePolicy().

void QGraphicsLayoutItem::updateGeometry()

Этот виртуальный метод отбрасывает любые кэшированные данные подсказки размера. Вы всегда должны вызывать эту функцию, если изменяете возвращаемое значение функции sizeHint(). Подклассы должны всегда вызывать базовую реализацию при переопределении этого метода.

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

Spec-Zone.ru

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