Описание класса QGraphicsLayoutItem [модуль QtGui]
Класс QGraphicsLayoutItem может быть унаследован, чтобы позволить управлять с помощью компоновщика пользовательскими элементами. Далее...
#include <QGraphicsLayoutItem> От него наследуются QGraphicsLayout и QGraphicsWidget.
Этот класс был введён в Qt 4.4.
Открытые функции
- QGraphicsLayoutItem ( QGraphicsLayoutItem * parent = 0, 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 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 ()
Защищенные функции
Подробное описание
Класс 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 используется системой компоновки, чтобы описать как элемент предпочитает расти и сжиматься.
Встраивание QGraphicsLayoutItem
В QGraphicsLayoutItem можно встраивать другие QGraphicsLayoutItem, аналогично тому, как компоновки могут содержать подкомпоновки. Это делается или передачей указателя на QGraphicsLayoutItem в защищённый конструктор QGraphicsLayoutItem, или вызовом setParentLayoutItem(). Функция parentLayoutItem() возвращает указатель на родителя элемента компоновщика. Если родитель элемента равен 0 или если родитель не наследуется от QGraphicsItem, то тогда функция parentLayoutItem() возвратит 0. isLayout() возвращает true если подкласс QGraphicsLayoutItem сам является компоновщиком, или false в противном случае.
Qt использует QGraphicsLayoutItem для предоставления функциональности компоновщика в каркасе графического представления, но в будущем его использование может распространится по всему Qt.
Смотрите также QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout и QGraphicsGridLayout.
Описание функций-членов
QGraphicsLayoutItem::QGraphicsLayoutItem ( QGraphicsLayoutItem * parent = 0, bool isLayout = false )
Создаёт объект QGraphicsLayoutItem. parent становится родителем объекта. Если isLayout равно true, элемент является компоновщиком, в противном случае isLayout равно false.
QGraphicsLayoutItem::~QGraphicsLayoutItem () [virtual]
Уничтожает объект 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().
void QGraphicsLayoutItem::getContentsMargins ( qreal * left, qreal * top, qreal * right, qreal * bottom ) const [virtual]
Эта виртуальная функция предоставляет поля содержимого left, top, right and bottom для этого QGraphicsLayoutItem. Реализация по-умолчанию подразумевает что все поля содержимого равны 0. Параметры указывают на значения, хранимые в qreals. Если любой из указателей равен 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
Возвращает значение, означающее будет ли компоновщик удалять данный элемент в своем деструкторе. Если true, тогда компоновщик будет удалять его. Если false, тогда предполагается, что другой объект владеет им и компоновщик не удалит этот элемент.
Если элемент унаследован и от QGraphicsItem и от QGraphicsLayoutItem (например, как QGraphicsWidget), элемент действительно является частью двух иерархий владения. Это свойство извещает, что компоновщик будет делать с его дочерними элементами когда она уничтожается. В случае с QGraphicsWidget, предпочтительнее чтобы при уничтожении компоновки она удаляла свои дочерние элементы (поскольку они также являются часть иерархии графического элемента).
По умолчанию это значение инициализируется значением false в QGraphicsLayoutItem, но оно замещается QGraphicsLayout и возвращает true. Это потому, что QGraphicsLayout не обычная часть иерархии QGraphicsItem, поэтому родительская компоновка будет его удалять. Подклассы могут заменить это поведение по умолчанию вызывая setOwnedByLayout(true).
Смотрите также 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().
void QGraphicsLayoutItem::setGeometry ( const QRectF & rect ) [virtual]
Эта виртуальная функция устанавливает геометрию QGraphicsLayoutItem равной прямоугольнику rect, заданному в координатах родителя (например, верхний левый угол rect равен позиции элемента в родительских координатах).
Вы должны переопределить эту функция в подклассе QGraphicsLayoutItem чтобы принимать обновления геометрии. Компоновщик будет вызывать эту функцию при выполнении перераспределении.
Если прямоугольник rect находится за пределами minimumSize и maximumSize, он будет автоматически приведён к ближайшему размеру чтобы он находился в допустимых пределах.
Смотрите также geometry().
void QGraphicsLayoutItem::setGraphicsItem ( QGraphicsItem * item ) [protected]
Если QGraphicsLayoutItem представляет QGraphicsItem и желает получить выгоду от возможностей автоматического изменения родителя в QGraphicsLayout будет устанавливать это значение. Обратите внимание на то, что если вы удалите item и не удалите элемент компоновки, вы отвечаете за вызов setGraphicsItem(0) для того, чтобы избежать обладания провисшего (dangling) указателя.
Смотрите также 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().
void QGraphicsLayoutItem::setOwnedByLayout ( bool ownership ) [protected]
Устанавливает удалит ли компоновка в своём деструкторе данный элемент или нет. 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равна (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), но обычно она изменяется в подклассах. Например, для QGraphicsWidget значение по-умолчанию равно (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType).
Смотрите также sizePolicy() и QWidget::sizePolicy().
Это перегруженная функция.
Эта вспомогательная функция эквивалента вызову setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType)).
Смотрите также sizePolicy() и QWidget::sizePolicy().
QSizeF QGraphicsLayoutItem::sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const [pure virtual protected]
Эта чисто виртуальная функция возвращает подсказку о размере для which элемента QGraphicsLayoutItem, используя ширину или высоту constraint для ограничения.
Переопределите эту функцию в подклассе QGraphicsLayoutItem чтобы предоставлять необходимые подсказки о размере для ваших элементов.
Смотрите также effectiveSizeHint().
QSizePolicy QGraphicsLayoutItem::sizePolicy () const
Возвращает текущую политику размера.
Смотрите также setSizePolicy() и QWidget::sizePolicy().
void QGraphicsLayoutItem::updateGeometry () [virtual]
Эта виртуальная функция отменяет любую кэшированную информацию о подсказках о размере. Вы всегда должны вызывать эту функцию если вы изменяете значение, возвращаемое функцией sizeHint(). Подклассы всегда должны вызывать базовую реализацию при переопределении этой функции.
Смотрите также effectiveSizeHint().
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) |
Торговые марки |
Qt 4.5.3 |
|