Spec-Zone.ru › Qt 5.12

Класс QGraphicsLayoutItem

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

Заголовок: #include <QGraphicsLayoutItem>
qmake: QT += widgets
С тех пор: Qt 4.4
Наследуется от:

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
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 setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

Защищённые переменные

int d_ptr

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

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

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

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

Наследование от QGraphicsLayoutItem

Если вы создаёте подкласс QGraphicsLayoutItem и переопределяете его виртуальные функции, вы позволите макету изменять размер и позиционировать ваш элемент вместе с другими элементами QGraphicsLayoutItem, включая 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() возвращает указатель на родительский элемент макета. Если родитель равен 0 или если родитель не наследует от 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. Параметры указывают на значения, хранящиеся в qreal. Если какой-либо из указателей равен 0, это значение не будет обновлено.

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

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

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

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

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

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

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

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

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

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

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

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

См. также 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, чтобы макет мог удалить его.

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

См. также 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 default size policy is (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().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qgraphicslayoutitem.html

Spec-Zone.ru

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