Класс QGraphicsItem
Класс QGraphicsItem — базовый класс для всех графических элементов в QGraphicsScene. Подробнее...
| Заголовок: | #include <QGraphicsItem> |
| qmake: | QT += widgets |
| С версии: | Qt 4.2 |
| Наследуется от: | QAbstractGraphicsShapeItem, QGraphicsItemGroup, QGraphicsLineItem, QGraphicsObject и QGraphicsPixmapItem |
Общие типы
| перечисление | CacheMode { NoCache, ItemCoordinateCache, DeviceCoordinateCache } |
| перечисление | GraphicsItemChange { ItemEnabledChange, ItemEnabledHasChanged, ItemMatrixChange, ItemPositionChange, ..., ItemScenePositionHasChanged } |
| перечисление | GraphicsItemFlag { ItemIsMovable, ItemIsSelectable, ItemIsFocusable, ItemClipsToShape, ..., ItemContainsChildrenInShape } |
| флаги | GraphicsItemFlags |
| перечисление | PanelModality { NonModal, PanelModal, SceneModal } |
| перечисление | anonymous { Type, UserType } |
Открытые функции
| QGraphicsItem(QGraphicsItem *parent = nullptr) | |
| virtual | ~QGraphicsItem() |
| bool | acceptDrops() const |
| bool | acceptHoverEvents() const |
| bool | acceptTouchEvents() const |
| Qt::MouseButtons | acceptedMouseButtons() const |
| virtual void | advance(int phase) |
| virtual QRectF | boundingRect() const = 0 |
| QRegion | boundingRegion(const QTransform &itemToDeviceTransform) const |
| qreal | boundingRegionGranularity() const |
| QGraphicsItem::CacheMode | cacheMode() const |
| QList<QGraphicsItem *> | childItems() const |
| QRectF | childrenBoundingRect() const |
| void | clearFocus() |
| QPainterPath | clipPath() const |
| virtual bool | collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| virtual bool | collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QList<QGraphicsItem *> | collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QGraphicsItem * | commonAncestorItem(const QGraphicsItem *other) const |
| virtual bool | contains(const QPointF &point) const |
| QCursor | cursor() const |
| QVariant | data(int key) const |
| QTransform | deviceTransform(const QTransform &viewportTransform) const |
| qreal | effectiveOpacity() const |
| void | ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50) |
| void | ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = ..., int ymargin = ...) |
| bool | filtersChildEvents() const |
| QGraphicsItem::GraphicsItemFlags | flags() const |
| QGraphicsItem * | focusItem() const |
| QGraphicsItem * | focusProxy() const |
| void | grabKeyboard() |
| void | grabMouse() |
| QGraphicsEffect * | graphicsEffect() const |
| QGraphicsItemGroup * | group() const |
| bool | hasCursor() const |
| bool | hasFocus() const |
| void | hide() |
| Qt::InputMethodHints | inputMethodHints() const |
| void | installSceneEventFilter(QGraphicsItem *filterItem) |
| bool | isActive() const |
| bool | isAncestorOf(const QGraphicsItem *child) const |
| bool | isBlockedByModalPanel(QGraphicsItem **blockingPanel = nullptr) const |
| bool | isClipped() const |
| bool | isEnabled() const |
| bool | isObscured(const QRectF &rect = QRectF()) const |
| bool | isObscured(qreal x, qreal y, qreal w, qreal h) const |
| virtual bool | isObscuredBy(const QGraphicsItem *item) const |
| bool | isPanel() const |
| bool | isSelected() const |
| bool | isUnderMouse() const |
| bool | isVisible() const |
| bool | isVisibleTo(const QGraphicsItem *parent) const |
| bool | isWidget() const |
| bool | isWindow() const |
| QTransform | itemTransform(const QGraphicsItem *other, bool *ok = nullptr) const |
| QPointF | mapFromItem(const QGraphicsItem *item, const QPointF &point) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, const QRectF &rect) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const |
| QPainterPath | mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const |
| QPointF | mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapFromParent(const QPointF &point) const |
| QPolygonF | mapFromParent(const QRectF &rect) const |
| QPolygonF | mapFromParent(const QPolygonF &polygon) const |
| QPainterPath | mapFromParent(const QPainterPath &path) const |
| QPointF | mapFromParent(qreal x, qreal y) const |
| QPolygonF | mapFromParent(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapFromScene(const QPointF &point) const |
| QPolygonF | mapFromScene(const QRectF &rect) const |
| QPolygonF | mapFromScene(const QPolygonF &polygon) const |
| QPainterPath | mapFromScene(const QPainterPath &path) const |
| QPointF | mapFromScene(qreal x, qreal y) const |
| QPolygonF | mapFromScene(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const |
| QRectF | mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectFromParent(const QRectF &rect) const |
| QRectF | mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectFromScene(const QRectF &rect) const |
| QRectF | mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const |
| QRectF | mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToParent(const QRectF &rect) const |
| QRectF | mapRectToParent(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToScene(const QRectF &rect) const |
| QRectF | mapRectToScene(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToItem(const QGraphicsItem *item, const QPointF &point) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, const QRectF &rect) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const |
| QPainterPath | mapToItem(const QGraphicsItem *item, const QPainterPath &path) const |
| QPointF | mapToItem(const QGraphicsItem *item, qreal x, qreal y) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToParent(const QPointF &point) const |
| QPolygonF | mapToParent(const QRectF &rect) const |
| QPolygonF | mapToParent(const QPolygonF &polygon) const |
| QPainterPath | mapToParent(const QPainterPath &path) const |
| QPointF | mapToParent(qreal x, qreal y) const |
| QPolygonF | mapToParent(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToScene(const QPointF &point) const |
| QPolygonF | mapToScene(const QRectF &rect) const |
| QPolygonF | mapToScene(const QPolygonF &polygon) const |
| QPainterPath | mapToScene(const QPainterPath &path) const |
| QPointF | mapToScene(qreal x, qreal y) const |
| QPolygonF | mapToScene(qreal x, qreal y, qreal w, qreal h) const |
| void | moveBy(qreal dx, qreal dy) |
| qreal | opacity() const |
| virtual QPainterPath | opaqueArea() const |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = ...) = 0 |
| QGraphicsItem * | panel() const |
| QGraphicsItem::PanelModality | panelModality() const |
| QGraphicsItem * | parentItem() const |
| QGraphicsObject * | parentObject() const |
| QGraphicsWidget * | parentWidget() const |
| QPointF | pos() const |
| void | removeSceneEventFilter(QGraphicsItem *filterItem) |
| void | resetTransform() |
| qreal | rotation() const |
| qreal | scale() const |
| QGraphicsScene * | scene() const |
| QRectF | sceneBoundingRect() const |
| QPointF | scenePos() const |
| QTransform | sceneTransform() const |
| void | scroll(qreal dx, qreal dy, const QRectF &rect = QRectF()) |
| void | setAcceptDrops(bool on) |
| void | setAcceptHoverEvents(bool enabled) |
| void | setAcceptTouchEvents(bool enabled) |
| void | setAcceptedMouseButtons(Qt::MouseButtons buttons) |
| void | setActive(bool active) |
| void | setBoundingRegionGranularity(qreal granularity) |
| void | setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize()) |
| void | setCursor(const QCursor &cursor) |
| void | setData(int key, const QVariant &value) |
| void | setEnabled(bool enabled) |
| void | setFiltersChildEvents(bool enabled) |
| void | setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true) |
| void | setFlags(QGraphicsItem::GraphicsItemFlags flags) |
| void | setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason) |
| void | setFocusProxy(QGraphicsItem *item) |
| void | setGraphicsEffect(QGraphicsEffect *effect) |
| void | setGroup(QGraphicsItemGroup *group) |
| void | setInputMethodHints(Qt::InputMethodHints hints) |
| void | setOpacity(qreal opacity) |
| void | setPanelModality(QGraphicsItem::PanelModality panelModality) |
| void | setParentItem(QGraphicsItem *newParent) |
| void | setPos(const QPointF &pos) |
| void | setPos(qreal x, qreal y) |
| void | setRotation(qreal angle) |
| void | setScale(qreal factor) |
| void | setSelected(bool selected) |
| void | setToolTip(const QString &toolTip) |
| void | setTransform(const QTransform &matrix, bool combine = false) |
| void | setTransformOriginPoint(const QPointF &origin) |
| void | setTransformOriginPoint(qreal x, qreal y) |
| void | setTransformations(const QList<QGraphicsTransform *> &transformations) |
| void | setVisible(bool visible) |
| void | setX(qreal x) |
| void | setY(qreal y) |
| void | setZValue(qreal z) |
| virtual QPainterPath | shape() const |
| void | show() |
| void | stackBefore(const QGraphicsItem *sibling) |
| QGraphicsObject * | toGraphicsObject() |
| const QGraphicsObject * | toGraphicsObject() const |
| QString | toolTip() const |
| QGraphicsItem * | topLevelItem() const |
| QGraphicsWidget * | topLevelWidget() const |
| QTransform | transform() const |
| QPointF | transformOriginPoint() const |
| QList<QGraphicsTransform *> | transformations() const |
| virtual int | type() const |
| void | ungrabKeyboard() |
| void | ungrabMouse() |
| void | unsetCursor() |
| void | update(const QRectF &rect = QRectF()) |
| void | update(qreal x, qreal y, qreal width, qreal height) |
| QGraphicsWidget * | window() const |
| qreal | x() const |
| qreal | y() const |
| qreal | zValue() const |
Защищённые функции
| virtual void | contextMenuEvent(QGraphicsSceneContextMenuEvent *event) |
| virtual void | dragEnterEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dragLeaveEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dragMoveEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dropEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | focusInEvent(QFocusEvent *event) |
| virtual void | focusOutEvent(QFocusEvent *event) |
| virtual void | hoverEnterEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | hoverLeaveEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | hoverMoveEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | inputMethodEvent(QInputMethodEvent *event) |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const |
| virtual QVariant | itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) |
| virtual void | keyPressEvent(QKeyEvent *event) |
| virtual void | keyReleaseEvent(QKeyEvent *event) |
| virtual void | mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mouseMoveEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mousePressEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mouseReleaseEvent(QGraphicsSceneMouseEvent *event) |
| void | prepareGeometryChange() |
| virtual bool | sceneEvent(QEvent *event) |
| virtual bool | sceneEventFilter(QGraphicsItem *watched, QEvent *event) |
| void | updateMicroFocus() |
| virtual void | wheelEvent(QGraphicsSceneWheelEvent *event) |
Защищённые переменные
| int | d_ptr |
Связанные внешние функции
| T | qgraphicsitem_cast(QGraphicsItem *item) |
Подробное описание
Класс QGraphicsItem — базовый класс для всех графических элементов в QGraphicsScene.
Он предоставляет лёгкую основу для написания собственных пользовательских элементов. Это включает определение геометрии элемента, обнаружения столкновений, его реализации рисования и взаимодействия с элементами через обработчики событий. QGraphicsItem входит в Графический фреймворк просмотра
Для удобства Qt предоставляет набор стандартных графических элементов для наиболее распространённых фигур. Это:
- QGraphicsEllipseItem предоставляет эллипс
- QGraphicsLineItem предоставляет линию
- QGraphicsPathItem предоставляет произвольную фигуру
- QGraphicsPixmapItem предоставляет элемент пиксельной карты
- QGraphicsPolygonItem предоставляет многоугольник
- QGraphicsRectItem предоставляет прямоугольник
- QGraphicsSimpleTextItem предоставляет простой элемент текстовой метки
- QGraphicsTextItem предоставляет расширенный элемент текстового браузера
Вся геометрическая информация элемента основана на его локальной системе координат. Позиция элемента, pos(), — единственная функция, которая не работает в локальных координатах, поскольку она возвращает позицию в координатах родителя. Система координат графического просмотра подробно описывает систему координат.
Вы можете установить, должен ли элемент быть видимым (т.е. отображаться и принимать события), вызвав setVisible(). Скрытие элемента также скроет его дочерние элементы. Аналогично, вы можете включить или выключить элемент, вызвав setEnabled(). Если вы отключите элемент, все его дочерние элементы также будут отключены. По умолчанию элементы одновременно видимы и включены. Чтобы переключить, выбран ли элемент или нет, сначала включите выбор, установив флаг ItemIsSelectable, а затем вызовите setSelected(). Обычно выбор переключается сценой в результате взаимодействия пользователя.
Для написания собственного графического элемента вы сначала создаёте подкласс QGraphicsItem, а затем начинаете с реализации двух чисто виртуальных публичных функций: boundingRect(), которая возвращает оценку области, нарисованной элементом, и paint(), которая реализует фактическое рисование. Например:
class SimpleItem : public QGraphicsItem
{
public:
QRectF boundingRect() const override
{
qreal penWidth = 1;
return QRectF(-10 - penWidth / 2, -10 - penWidth / 2,
20 + penWidth, 20 + penWidth);
}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget) override
{
painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
}
}; Функция boundingRect() имеет много различных целей. QGraphicsScene использует boundingRect() для индексации элементов, а QGraphicsView использует её как для отсечения невидимых элементов, так и для определения области, которую нужно перерисовать при отрисовке перекрывающихся элементов. Кроме того, механизмы обнаружения столкновений QGraphicsItem используют boundingRect() для обеспечения эффективного отсечения. Точный алгоритм обнаружения столкновений в collidesWithItem() основан на вызове shape(), который возвращает точный контур фигуры элемента в виде QPainterPath.
QGraphicsScene ожидает, что boundingRect() и shape() элементов останутся неизменными, пока не будет получено уведомление. Если вы хотите изменить геометрию элемента каким-либо образом, вы должны сначала вызвать prepareGeometryChange(), чтобы позволить QGraphicsScene обновить свои записи.
Обнаружение столкновений можно выполнить двумя способами:
- Переопределите shape(), чтобы возвращать точную форму элемента, и опирайтесь на реализацию по умолчанию collidesWithItem() для пересечения фигур. Это может быть довольно затратно по времени, если фигуры сложные.
- Переопределите collidesWithItem(), чтобы реализовать собственный алгоритм столкновения элементов и фигур.
Функция contains() может быть вызвана, чтобы определить, содержит ли элемент заданную точку. Элемент может переопределить эту функцию. По умолчанию поведение contains() основано на вызове shape().
Элементы могут содержать другие элементы и быть содержащими для других элементов. Все элементы могут иметь родительский элемент и список дочерних элементов. Если у элемента нет родительского элемента, его положение задаётся в координатах родителя (т. е. локальные координаты родителя). Родительские элементы передают своё положение и преобразования всем своим дочерним элементам.
Преобразования
QGraphicsItem поддерживает проективные преобразования помимо базового положения, pos(). Существует несколько способов изменить преобразование элемента. Для простых преобразований можно вызвать удобные функции setRotation() или setScale(), или передать любую матрицу преобразования в setTransform(). Для расширенного управления преобразованиями есть возможность задать несколько комбинированных преобразований, вызвав setTransformations().
Преобразования элементов накапливаются от родителя к дочернему элементу, поэтому, если и родительский, и дочерний элементы повернуты на 90 градусов, общее преобразование дочернего элемента будет 180 градусов. Аналогично, если родительский элемент масштабируется в 2 раза, то и дочерние элементы также будут в два раза больше. Преобразование элемента не влияет на его собственную локальную геометрию; все геометрические функции (например, contains(), update() и все функции отображения) по-прежнему работают в локальных координатах. Для удобства QGraphicsItem предоставляет функции sceneTransform(), которая возвращает общую матрицу преобразования элемента (включая положение и положения всех родителей, а также их преобразования), и scenePos(), которая возвращает его положение в координатах сцены. Чтобы сбросить матрицу элемента, вызовите resetTransform().
Определённые операции преобразования дают разный результат в зависимости от порядка их применения. Например, если сначала масштабировать, а затем повернуть преобразование, результат может отличаться от результата, если сначала повернуть, а затем масштабировать. Однако порядок задания свойств преобразования для QGraphicsItem не влияет на итоговое преобразование; QGraphicsItem всегда применяет свойства в фиксированном, определённом порядке:
- Применяется базовое преобразование элемента (transform())
- Применяется список преобразований элемента в порядке (transformations())
- Элемент поворачивается относительно точки начала преобразования (rotation(), transformOriginPoint())
- Элемент масштабируется относительно точки начала преобразования (scale(), transformOriginPoint())
Отрисовка
Функция paint() вызывается QGraphicsView для отрисовки содержимого элемента. У элемента нет фона или стандартной заливки; всё, что находится за элементом, будет просвечивать сквозь все области, которые явно не отрисовываются в этой функции. Вы можете вызвать update(), чтобы запланировать перерисовку, необязательно передавая прямоугольник, который нужно перерисовать. В зависимости от того, виден ли элемент в представлении, он может быть перерисован или нет; в QGraphicsItem нет аналога QWidget::repaint().
Элементы отрисовываются представлением, начиная с родительских элементов, а затем рисуя дочерние элементы в порядке возрастания порядка наложения. Вы можете установить порядок наложения элемента, вызвав setZValue(), и проверить его, вызвав zValue(), где элементы с низкими значениями z рисуются перед элементами с высокими значениями z. Порядок наложения относится к элементам-«братьям»; родители всегда рисуются перед своими детьми.
Сортировка
Все элементы рисуются в определённом, стабильном порядке, и этот же порядок определяет, какие элементы получат ввод мыши первыми, когда вы щелкните по сцене. Обычно вам не нужно беспокоиться о сортировке, поскольку элементы следуют «естественному порядку», следуя логической структуре сцены.
Дочерние элементы элемента накладываются поверх родительского, а элементы-«братья» накладываются в порядке вставки (т. е. в том же порядке, в котором они были добавлены на сцену или в того же родителя). Если вы добавили элемент A, а затем B, то B будет поверх A. Если затем вы добавите C, порядок наложения элементов будет A, затем B, затем C.
Этот пример демонстрирует порядок наложения всех конечностей робота из примера Drag and Drop Robot. Туловище — это корневой элемент (все остальные элементы являются дочерними или потомками туловища), поэтому оно рисуется в первую очередь. Затем рисуется голова, так как это первый элемент в списке дочерних элементов туловища. Затем рисуется левая верхняя рука. Поскольку нижняя рука является дочерним элементом верхней руки, затем рисуется нижняя рука, за ней — следующая «братская» верхняя правая рука и так далее.
Для продвинутых пользователей существуют способы изменения порядка сортировки ваших элементов:
- Вы можете вызвать setZValue() для элемента, чтобы явно расположить его поверх или под другими элементами-«братьями». Значение Z по умолчанию для элемента равно 0. Элементы с одинаковым значением Z накладываются в порядке вставки.
- Вы можете вызвать stackBefore(), чтобы изменить порядок списка дочерних элементов. Это напрямую изменит порядок вставки.
- Вы можете установить флаг ItemStacksBehindParent, чтобы расположить дочерний элемент за его родителем.
Порядок наложения двух элементов-«братьев» также учитывается для каждого дочернего и последующих элементов. Итак, если один элемент находится поверх другого, то и все его дочерние элементы также будут находиться поверх всех дочерних элементов другого элемента.
События
QGraphicsItem получает события от QGraphicsScene через виртуальную функцию sceneEvent(). Эта функция распределяет наиболее распространённые события по набору удобных обработчиков событий:
- contextMenuEvent() обрабатывает события контекстного меню
- focusInEvent() и focusOutEvent() обрабатывают события ввода и выхода фокуса
- hoverEnterEvent(), hoverMoveEvent(), и hoverLeaveEvent() обрабатывают события входа, перемещения и выхода указателя
- inputMethodEvent() обрабатывает события ввода для поддержки доступности
- keyPressEvent() и keyReleaseEvent() обрабатывают события нажатия и отпускания клавиш
- mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), и mouseDoubleClickEvent() обрабатывают события нажатия, перемещения, отпускания и двойного щелчка мыши
Вы можете отфильтровать события для любого другого элемента, установив фильтры событий. Эта функциональность отделена от стандартных фильтров событий Qt (см. QObject::installEventFilter()), которые работают только с подклассами QObject. После установки элемента в качестве фильтра событий для другого элемента, вызвав installSceneEventFilter(), отфильтрованные события будут получены виртуальной функцией sceneEventFilter(). Вы можете удалить фильтры событий элемента, вызвав removeSceneEventFilter().
Пользовательские данные
Иногда бывает полезно зарегистрировать пользовательские данные с элементом, будь то пользовательский элемент или стандартный элемент. Вы можете вызвать setData() для любого элемента, чтобы сохранить данные в нём с помощью пары ключ-значение (ключ — целое число, а значение — QVariant). Чтобы получить пользовательские данные из элемента, вызовите data(). Эта функциональность полностью не затронута Qt; она предоставляется для удобства пользователя.
См. также QGraphicsScene, QGraphicsView и Графическая система отображения.
Документация по типам членов
enum QGraphicsItem::CacheMode
Этот перечисление описывает режимы кэширования QGraphicsItem. Кэширование используется для ускорения отрисовки путём выделения и отрисовки на буфере пикселей вне области видимости, который можно повторно использовать, когда элемент требует перерисовки. Для некоторых устройств отрисовки кеш хранится непосредственно в графической памяти, что делает отрисовку очень быстрой.
| Константа | Значение | Описание |
|---|---|---|
QGraphicsItem::NoCache |
0 |
По умолчанию; кеширование всех элементов отключено. QGraphicsItem::paint() вызывается каждый раз, когда требуется перерисовка элемента. |
QGraphicsItem::ItemCoordinateCache |
1 |
Кеширование включено для локальной системы координат элемента. QGraphicsItem создаёт буфер пикселей вне экрана с конфигурируемым размером/разрешением, который вы можете передать в QGraphicsItem::setCacheMode(). Качество отображения, как правило, ухудшится в зависимости от разрешения кеша и преобразования элемента. В первый раз при перерисовке элемента он будет отрисован в кеш, который затем будет повторно использован для каждого последующего отображения. Кеш также используется при преобразовании элемента. Чтобы настроить разрешение кеша, вы можете повторно вызвать setCacheMode(). |
QGraphicsItem::DeviceCoordinateCache |
2 |
Кеширование включено на уровне устройства отрисовки в координатах устройства. Этот режим предназначен для элементов, которые могут перемещаться, но не вращаются, масштабируются или наклоняются. Если элемент преобразуется непосредственно или косвенно, кеш будет автоматически пересоздан. В отличие от режима ItemCoordinateCache, DeviceCoordinateCache всегда отображается с максимальным качеством. |
Этот перечисление был введён или изменён в Qt 4.4.
См. такжеQGraphicsItem::setCacheMode().
перечисление QGraphicsItem::GraphicsItemChange
Это перечисление описывает изменения состояния, о которых сообщается QGraphicsItem::itemChange(). Уведомления отправляются по мере изменения состояния, и в некоторых случаях можно внести коррективы (подробности см. в документации для каждого изменения).
Примечание: будьте внимательны при вызове функций объекта QGraphicsItem непосредственно внутри itemChange(), так как некоторые вызовы функций могут привести к нежелательной рекурсии. Например, вы не можете вызвать setPos() в itemChange() при уведомлении ItemPositionChange, так как функция setPos() снова вызовет itemChange(ItemPositionChange). Вместо этого вы можете вернуть новую, скорректированную позицию из itemChange().
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::ItemEnabledChange |
3 |
Состояние включения/выключения элемента изменяется. Если элемент сейчас включён, он станет выключенным, и наоборот. Аргумент value — новое состояние включения (т.е. true или false). Не вызывайте setEnabled() в itemChange(), так как это уведомление уже доставлено. Вместо этого можно вернуть новое состояние из itemChange(). |
QGraphicsItem::ItemEnabledHasChanged |
13 |
Состояние включения/выключения элемента изменилось. Аргумент value — новое состояние включения (т.е. true или false). Не вызывайте setEnabled() в itemChange(), так как это уведомление уже доставлено. Значение возврата игнорируется. |
QGraphicsItem::ItemMatrixChange |
1 |
Матрица аффинного преобразования элемента изменяется. Это значение устарело; используйте вместо него ItemTransformChange. |
QGraphicsItem::ItemPositionChange |
0 |
Изменяется положение элемента. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и когда локальное положение элемента относительно родителя изменяется (например, в результате вызова setPos() или moveBy()). Аргумент value — новое положение (т.е. QPointF). Для получения исходного положения можно вызвать pos(). Не вызывайте setPos() или moveBy() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новое, скорректированное положение из itemChange(). После этого уведомления QGraphicsItem сразу отправляет уведомление ItemPositionHasChanged, если положение изменилось. |
QGraphicsItem::ItemPositionHasChanged |
9 |
Положение элемента изменилось. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и после изменения локального положения элемента относительно родителя. Аргумент value — новое положение (то же, что и pos()), и QGraphicsItem игнорирует значение возврата для этого уведомления (т.е. только для чтения). |
QGraphicsItem::ItemTransformChange |
8 |
Изменяется матрица преобразования элемента. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и при изменении локальной матрицы преобразования элемента (например, в результате вызова setTransform()). Аргумент value — новая матрица (т.е. QTransform); для получения старой матрицы вызовите transform(). Не вызывайте setTransform() или не изменяйте свойства преобразования в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новую матрицу из itemChange(). Это уведомление не отправляется, если вы изменяете свойства преобразования. |
QGraphicsItem::ItemTransformHasChanged |
10 |
Матрица преобразования элемента изменилась, либо потому что был вызван setTransform, либо потому что было изменено одно из свойств преобразования. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и после изменения локальной матрицы преобразования элемента. Аргумент value — новая матрица (такая же, как transform()), и QGraphicsItem игнорирует значение возврата для этого уведомления (т.е. только для чтения). |
QGraphicsItem::ItemRotationChange |
28 |
Изменяется свойство поворота элемента. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и при изменении свойства поворота элемента (например, в результате вызова setRotation()). Аргумент value — новый угол поворота (вещественное число); для получения старого угла поворота вызовите rotation(). Не вызывайте setRotation() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новый угол поворота из itemChange(). |
QGraphicsItem::ItemRotationHasChanged |
29 |
Свойство поворота элемента изменилось. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и после изменения свойства поворота элемента. Аргумент value — новый угол поворота (вещественное число), и QGraphicsItem игнорирует значение возврата для этого уведомления (т.е. только для чтения). Не вызывайте setRotation() в itemChange(), так как это уведомление уже доставлено. |
QGraphicsItem::ItemScaleChange |
30 |
Изменяется свойство масштаба элемента. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и при изменении свойства масштаба элемента (например, в результате вызова setScale()). Аргумент value — новый масштаб (вещественное число); для получения старого масштаба вызовите scale(). Не вызывайте setScale() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новый масштаб из itemChange(). |
QGraphicsItem::ItemScaleHasChanged |
31 |
Свойство масштаба элемента изменилось. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и после изменения свойства масштаба элемента. Аргумент value — новый масштаб (вещественное число), и QGraphicsItem игнорирует значение возврата для этого уведомления (т.е. только для чтения). Не вызывайте setScale() в itemChange(), так как это уведомление уже доставлено. |
QGraphicsItem::ItemTransformOriginPointChange |
32 |
Изменяется свойство точки начала преобразования элемента. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и при изменении свойства точки начала преобразования элемента (например, в результате вызова setTransformOriginPoint()). Аргумент value — новая точка начала преобразования (т.е. QPointF); для получения старой точки начала преобразования вызовите transformOriginPoint(). Не вызывайте setTransformOriginPoint() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новую точку начала преобразования из itemChange(). |
QGraphicsItem::ItemTransformOriginPointHasChanged |
33 |
Свойство точки начала преобразования элемента изменилось. Это уведомление отправляется, если установлен флаг ItemSendsGeometryChanges, и после изменения свойства точки начала преобразования элемента. Аргумент value — новая точка начала преобразования (т.е. QPointF), и QGraphicsItem игнорирует значение возврата для этого уведомления (т.е. только для чтения). Не вызывайте setTransformOriginPoint() в itemChange(), так как это уведомление уже доставлено. |
QGraphicsItem::ItemSelectedChange |
4 |
Состояние выбора элемента изменяется. Если элемент сейчас выбран, он станет невыбранным, и наоборот. Аргумент value — новое состояние выбора (т.е. true или false). Не вызывайте setSelected() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новое состояние выбора из itemChange(). |
QGraphicsItem::ItemSelectedHasChanged |
14 |
Состояние выбора элемента изменилось. Аргумент value — новое состояние выбора (т.е. true или false). Не вызывайте setSelected() в itemChange(), так как это уведомление уже доставлено. Значение возврата игнорируется. |
QGraphicsItem::ItemVisibleChange |
2 |
Состояние видимости элемента изменяется. Если элемент сейчас видим, он станет невидимым, и наоборот. Аргумент value — новое состояние видимости (т.е. true или false). Не вызывайте setVisible() в itemChange(), так как это уведомление уже доставлено; вместо этого можно вернуть новое состояние видимости из itemChange(). |
QGraphicsItem::ItemVisibleHasChanged |
12 |
Состояние видимости элемента изменилось. Аргумент value — новое состояние видимости (т.е. true или false). Не вызывайте setVisible() в itemChange(), так как это уведомление уже доставлено. Значение возврата игнорируется. |
QGraphicsItem::ItemParentChange |
5 |
Родительский элемент изменяется. Аргумент value — новый родительский элемент (т.е., указатель на QGraphicsItem). Не вызывайте setParentItem() в itemChange(), так как уведомление уже доставлено; вместо этого вы можете вернуть нового родителя из itemChange(). |
QGraphicsItem::ItemParentHasChanged |
15 |
Родительский элемент изменился. Аргумент value — новый родитель (т.е., указатель на QGraphicsItem). Не вызывайте setParentItem() в itemChange(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemChildAddedChange |
6 |
К этому элементу добавлен дочерний элемент. Аргумент value — новый дочерний элемент (т.е., указатель на QGraphicsItem). Не передавайте этот элемент в функцию setParentItem() любого элемента, так как уведомление уже доставлено. Возвращаемое значение не используется; вы не можете ничего изменить в этом уведомлении. Обратите внимание, что новый дочерний элемент может быть не полностью создан, когда это уведомление отправляется; вызов чисто виртуальных функций в дочернем элементе может привести к сбою. |
QGraphicsItem::ItemChildRemovedChange |
7 |
Дочерний элемент удален из этого элемента. Аргумент value — дочерний элемент, который собирается удалить (т.е., указатель на QGraphicsItem). Возвращаемое значение не используется; вы не можете ничего изменить в этом уведомлении. |
QGraphicsItem::ItemSceneChange |
11 |
Элемент перемещен в новую сцену. Это уведомление также отправляется, когда элемент добавляется в исходную сцену и когда он удаляется. scene() элемента — старая сцена (или 0, если элемент еще не добавлен в сцену). Аргумент value — новая сцена (т.е., указатель на QGraphicsScene) или нулевой указатель, если элемент удален из сцены. Не перезаписывайте это изменение, передавая этот элемент в QGraphicsScene::addItem(), так как уведомление уже доставлено; вместо этого вы можете вернуть новую сцену из itemChange(). Используйте эту функцию с осторожностью; возражение против изменения сцены может быстро привести к нежелательной рекурсии. |
QGraphicsItem::ItemSceneHasChanged |
16 |
Сцена элемента изменилась. scene() элемента — новая сцена. Это уведомление также отправляется, когда элемент добавляется в исходную сцену и когда он удаляется. Аргумент value — новая сцена (т.е., указатель на QGraphicsScene). Не вызывайте setScene() в itemChange(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemCursorChange |
17 |
Курсор элемента изменяется. Аргумент value — новый курсор (т.е., QCursor). Не вызывайте setCursor() в itemChange(), так как уведомление уже доставлено. Вместо этого вы можете вернуть новый курсор из itemChange(). |
QGraphicsItem::ItemCursorHasChanged |
18 |
Курсор элемента изменился. Аргумент value — новый курсор (т.е., QCursor). Не вызывайте setCursor(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemToolTipChange |
19 |
Подсказка элемента изменяется. Аргумент value — новая подсказка (т.е., QToolTip). Не вызывайте setToolTip() в itemChange(), так как уведомление уже доставлено. Вместо этого вы можете вернуть новую подсказку из itemChange(). |
QGraphicsItem::ItemToolTipHasChanged |
20 |
Подсказка элемента изменилась. Аргумент value — новая подсказка (т.е., QToolTip). Не вызывайте setToolTip(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemFlagsChange |
21 |
Флаги элемента изменяются. Аргумент value — новые флаги (т.е., quint32). Не вызывайте setFlags() в itemChange(), так как уведомление уже доставлено. Вместо этого вы можете вернуть новые флаги из itemChange(). |
QGraphicsItem::ItemFlagsHaveChanged |
22 |
Флаги элемента изменились. Аргумент value — новые флаги (т.е., quint32). Не вызывайте setFlags() в itemChange(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemZValueChange |
23 |
Значение Z элемента изменяется. Аргумент value — новое значение Z (т.е., double). Не вызывайте setZValue() в itemChange(), так как уведомление уже доставлено. Вместо этого вы можете вернуть новое значение Z из itemChange(). |
QGraphicsItem::ItemZValueHasChanged |
24 |
Значение Z элемента изменилось. Аргумент value — новое значение Z (т.е., double). Не вызывайте setZValue(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemOpacityChange |
25 |
Изменяется непрозрачность элемента. Аргумент value — новая непрозрачность (т.е., double). Не вызывайте setOpacity() в itemChange(), так как уведомление уже доставлено. Вместо этого вы можете вернуть новую непрозрачность из itemChange(). |
QGraphicsItem::ItemOpacityHasChanged |
26 |
Непрозрачность элемента изменилась. Аргумент value — новая непрозрачность (т.е., double). Не вызывайте setOpacity(), так как уведомление уже доставлено. Возвращаемое значение игнорируется. |
QGraphicsItem::ItemScenePositionHasChanged |
27 |
Изменилось положение элемента в сцене. Это уведомление отправляется, если флаг ItemSendsScenePositionChanges включен, и после изменения положения элемента в сцене (т.е., изменилось положение или преобразование самого элемента или положение или преобразование любого предка). Аргумент value — новое положение элемента в сцене (то же, что и scenePos()), и QGraphicsItem игнорирует возвращаемое значение для этого уведомления (т.е., только для чтения). |
enum QGraphicsItem::GraphicsItemFlagflags QGraphicsItem::GraphicsItemFlags
Этот перечисление описывает различные флаги, которые можно установить для элемента, чтобы изменить различные функции в поведении элемента.
Все флаги по умолчанию отключены.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::ItemIsMovable |
0x1 |
Элемент поддерживает интерактивное перемещение с помощью мыши. Щелкнув по элементу и перетащив его, элемент будет перемещаться вместе с курсором мыши. Если элемент имеет дочерние элементы, все дочерние элементы также перемещаются. Если элемент является частью выделения, все выделенные элементы также перемещаются. Эта функция предоставляется в качестве удобства через базовую реализацию обработчиков событий мыши QGraphicsItem. |
QGraphicsItem::ItemIsSelectable |
0x2 |
Элемент поддерживает выделение. Включение этой функции включит setSelected() для переключения выделения для элемента. Это также позволит элементу быть автоматически выделенным в результате вызова QGraphicsScene::setSelectionArea(), щелчка по элементу или использования выделения резиновой лентой в QGraphicsView. |
QGraphicsItem::ItemIsFocusable |
0x4 |
Элемент поддерживает фокусирование ввода с клавиатуры (т.е., он является элементом ввода). Включение этого флага позволит элементу принимать фокус, что, в свою очередь, позволит передавать события нажатия клавиш в QGraphicsItem::keyPressEvent() и QGraphicsItem::keyReleaseEvent(). |
QGraphicsItem::ItemClipsToShape |
0x8 |
Элемент обрезается до собственной формы. Элемент не может рисовать или получать события мыши, планшета, перетаскивания и наведения на элемент за пределами своей формы. По умолчанию отключено. Это поведение обеспечивается QGraphicsView::drawItems() или QGraphicsScene::drawItems(). Этот флаг был введен в Qt 4.3. |
QGraphicsItem::ItemClipsChildrenToShape |
0x10 |
Элемент обрезает рисование всех своих потомков до собственной формы. Элементы, которые являются прямыми или косвенными потомками этого элемента, не могут рисоваться за пределами формы этого элемента. По умолчанию этот флаг отключен; дети могут рисоваться где угодно. Это поведение обеспечивается QGraphicsView::drawItems() или QGraphicsScene::drawItems(). Этот флаг был введен в Qt 4.3. |
Примечание: Этот флаг похож на ItemContainsChildrenInShape, но, помимо этого, он выполняет ограничение, обрезая детей.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::ItemIgnoresTransformations |
0x20 |
Элемент игнорирует унаследованные преобразования (т.е., его позиция по-прежнему привязана к родителю, но преобразования вращения, масштабирования или наклона родителя или представления игнорируются). Этот флаг полезен для поддержания горизонтальности и неизменного масштаба элементов текстовых меток, чтобы они оставались читаемыми, если представление преобразуется. При установке этого флага геометрия представления и геометрия сцены элемента будут поддерживаться отдельно. Для отображения координат и обнаружения столкновений в представлении необходимо вызвать deviceTransform(). По умолчанию этот флаг отключен. Этот флаг был введён в Qt 4.3. |
Примечание: При установке этого флага вы всё ещё можете масштабировать сам элемент, и это преобразование масштаба повлияет на дочерние элементы элемента.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::ItemIgnoresParentOpacity |
0x40 |
Элемент игнорирует непрозрачность родителя. Эффективная непрозрачность элемента такая же, как и у него самого; она не комбинируется с непрозрачностью родителя. Этот флаг позволяет элементу сохранять абсолютную непрозрачность, даже если родитель полупрозрачен. Этот флаг был введён в Qt 4.5. |
QGraphicsItem::ItemDoesntPropagateOpacityToChildren |
0x80 |
Элемент не распространяет свою непрозрачность на свои дочерние элементы. Этот флаг позволяет создавать полупрозрачный элемент, который не влияет на непрозрачность его дочерних элементов. Этот флаг был введён в Qt 4.5. |
QGraphicsItem::ItemStacksBehindParent |
0x100 |
Элемент находится позади своего родителя. По умолчанию дочерние элементы размещаются поверх родительского элемента. Но при установке этого флага дочерний элемент будет находиться позади родительского. Этот флаг полезен для эффектов теней и для декоративных объектов, которые следуют геометрии родительского элемента, не накладываясь на него. Этот флаг был введён в Qt 4.5. |
QGraphicsItem::ItemUsesExtendedStyleOption |
0x200 |
Элемент использует либо exposedRect, либо matrix в QStyleOptionGraphicsItem. По умолчанию exposedRect инициализируется с помощью boundingRect() элемента, а matrix не преобразуется. Вы можете включить этот флаг для более точной настройки параметров стиля. Обратите внимание, что QStyleOptionGraphicsItem::levelOfDetail не зависит от этого флага и всегда инициализируется значением 1. Используйте QStyleOptionGraphicsItem::levelOfDetailFromTransform(), если вам нужна большая величина. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemHasNoContents |
0x400 |
Элемент ничего не отрисовывает (т.е., вызов paint() для элемента не имеет эффекта). Вы должны установить этот флаг для элементов, которые не требуют отрисовки, чтобы обеспечить, что графический просмотр избегает ненужной подготовки к отрисовке. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemSendsGeometryChanges |
0x800 |
Элемент включает уведомления itemChange() для ItemPositionChange, ItemPositionHasChanged, ItemMatrixChange, ItemTransformChange, ItemTransformHasChanged, ItemRotationChange, ItemRotationHasChanged, ItemScaleChange, ItemScaleHasChanged, ItemTransformOriginPointChange и ItemTransformOriginPointHasChanged. По соображениям производительности эти уведомления отключены по умолчанию. Необходимо включить этот флаг для получения уведомлений об изменениях позиции и преобразования. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemAcceptsInputMethod |
0x1000 |
Элемент поддерживает методы ввода, обычно используемые для азиатских языков. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemNegativeZStacksBehindParent |
0x2000 |
Элемент автоматически размещается позади родителя, если его значение z отрицательно. Этот флаг позволяет setZValue() переключать ItemStacksBehindParent. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemIsPanel |
0x4000 |
Элемент является панелью. Панель обеспечивает обработку активации и фокуса. Одновременно может быть активна только одна панель (см. QGraphicsItem::isActive()). Когда ни одна панель не активна, QGraphicsScene активирует все элементы, которые не являются панелями. Элементы окна (т.е. QGraphicsItem::isWindow() возвращает true) являются панелями. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemSendsScenePositionChanges |
0x10000 |
Элемент включает уведомления itemChange() для ItemScenePositionHasChanged. По соображениям производительности эти уведомления отключены по умолчанию. Вам необходимо включить этот флаг для получения уведомлений об изменениях позиции сцены. Этот флаг был введён в Qt 4.6. |
QGraphicsItem::ItemContainsChildrenInShape |
0x80000 |
Этот флаг указывает, что все прямые и косвенные дочерние элементы отрисовываются только внутри формы элемента. В отличие от ItemClipsChildrenToShape, это ограничение не применяется. Установите ItemContainsChildrenInShape, когда вы вручную гарантируете, что отрисовка ограничена формой элемента и хотите избежать расходов, связанных с принудительным ограничением. Установка этого флага позволяет повысить эффективность отрисовки и определения столкновений. Флаг отключен по умолчанию. |
Примечание: Если оба флага, ItemContainsChildrenInShape и ItemClipsChildrenToShape, установлены, ограничение будет принудительно применено. Это эквивалентно установке только ItemClipsChildrenToShape.
Этот флаг был введён в Qt 5.4.
Тип GraphicsItemFlags является псевдонимом для QFlags<GraphicsItemFlag>. Он хранит логическое ИЛИ сочетание значений GraphicsItemFlag.
enum QGraphicsItem::PanelModality
Этот перечисление определяет поведение модальной панели. Модальная панель — это панель, которая блокирует ввод для других панелей. Обратите внимание, что элементы, являющиеся дочерними элементами модальной панели, не блокируются.
Значения:
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::NonModal |
0 |
Панель не является модальной и не блокирует ввод для других панелей. Это значение по умолчанию для панелей. |
QGraphicsItem::PanelModal |
1 |
Панель является модальной для отдельной иерархии элементов и блокирует ввод для родительской панели, всех родительских панелей и всех элементов-братьев родительской и родительских панелей. |
QGraphicsItem::SceneModal |
2 |
Окно является модальным для всей сцены и блокирует ввод для всех панелей. |
Этот перечисление был введён или изменён в Qt 4.6.
См. также QGraphicsItem::setPanelModality(), QGraphicsItem::panelModality() и QGraphicsItem::ItemIsPanel.
enum QGraphicsItem::anonymous
Значение, возвращаемое виртуальной функцией type() в стандартных классах графических элементов в Qt. Все стандартные классы графических элементов в Qt ассоциированы с уникальным значением для Type, например, значение, возвращаемое QGraphicsPathItem::type(), равно 2.
| Постоянная | Значение | Описание |
|---|---|---|
QGraphicsItem::Type |
1 |
class QGraphicsPathItem : public QAbstractGraphicsShapeItem
{
public:
enum { Type = 2 };
int type() const override { return Type; }
...
}; |
QGraphicsItem::UserType |
65536 |
Наименьшее значение, возвращаемое виртуальной функцией type() для пользовательских подклассов QGraphicsItem.class CustomItem : public QGraphicsItem
{
public:
enum { Type = UserType + 1 };
int type() const override
{
// Enable the use of qgraphicsitem_cast with this item.
return Type;
}
...
}; |
Документация по функциям-членам
QGraphicsItem::QGraphicsItem(QGraphicsItem *parent = nullptr)
Создаёт QGraphicsItem с заданным родительским элементом parent. Не изменяет родительский объект, возвращаемый QObject::parent().
Если parent равен 0, вы можете добавить элемент в сцену, вызвав QGraphicsScene::addItem(). В этом случае элемент станет корневым элементом.
См. также QGraphicsScene::addItem() и setParentItem().
[virtual] QGraphicsItem::~QGraphicsItem()
Удаляет QGraphicsItem и все его дочерние элементы. Если этот элемент в настоящее время связан со сценой, элемент будет удалён из сцены перед удалением.
Примечание: Более эффективно удалить элемент из QGraphicsScene перед удалением элемента.
bool QGraphicsItem::acceptDrops() const
Возвращает true если данный элемент может принимать события перетаскивания; в противном случае возвращает false. По умолчанию элементы не принимают события перетаскивания; элементы прозрачны для перетаскивания.
См. также setAcceptDrops().
bool QGraphicsItem::acceptHoverEvents() const
Возвращает true если элемент принимает события наведения курсора (QGraphicsSceneHoverEvent); в противном случае возвращает false. По умолчанию элементы не принимают события наведения.
Эта функция была добавлена в Qt 4.4.
См. также setAcceptHoverEvents() и setAcceptedMouseButtons().
bool QGraphicsItem::acceptTouchEvents() const
Возвращает true если элемент принимает события касания; в противном случае возвращает false. По умолчанию элементы не принимают события касания.
Эта функция была добавлена в Qt 4.6.
См. также setAcceptTouchEvents().
Qt::MouseButtons QGraphicsItem::acceptedMouseButtons() const
Возвращает нажатия клавиш мыши, которые данный элемент принимает для обработки событий мыши. По умолчанию принимаются все клавиши.
Если элемент принимает нажатие клавиши мыши, он станет элементом захвата мыши при получении события нажатия для этой клавиши. Однако, если элемент не принимает нажатие клавиши, QGraphicsScene перенаправит события мыши первому элементу под ним, который это делает.
См. также setAcceptedMouseButtons() и mousePressEvent().
[virtual] void QGraphicsItem::advance(int phase)
Эта виртуальная функция вызывается дважды для всех элементов слотом QGraphicsScene::advance(). В первой фазе все элементы вызываются с phase == 0, указывая, что элементы на сцене собираются продвинуться, а затем все элементы вызываются с phase == 1. Переопределите эту функцию, чтобы обновить свой элемент, если вам нужна простая анимация, управляемая сценой.
По умолчанию реализация ничего не делает.
Эта функция предназначена для анимации. Альтернативой является множественное наследование от QObject и QGraphicsItem и использование фреймворка анимации.
См. также QGraphicsScene::advance() и QTimeLine.
[pure virtual] QRectF QGraphicsItem::boundingRect() const
Эта чисто виртуальная функция определяет внешние границы элемента в виде прямоугольника; вся отрисовка должна быть ограничена пределами прямоугольника элемента. QGraphicsView использует это для определения необходимости перерисовки элемента.
Хотя форма элемента может быть произвольной, прямоугольник всегда прямоугольный, и он не зависит от преобразований элемента.
Если вы хотите изменить прямоугольник элемента, вы должны сначала вызвать prepareGeometryChange(). Это уведомляет сцену об предстоящих изменениях, чтобы она могла обновить индекс геометрии элемента; в противном случае сцена не будет знать о новой геометрии элемента, и результаты будут неопределёнными (как правило, остаются артефакты рендеринга в представлении).
Переопределите эту функцию, чтобы QGraphicsView определял, какие части виджета, если таковые имеются, нуждаются в перерисовке.
Примечание: Для форм, которые рисуют контур / обводку, важно включить половину ширины пера в прямоугольник. Однако нет необходимости компенсировать антиалиасинг.
Пример:
QRectF CircleItem::boundingRect() const
{
qreal penWidth = 1;
return QRectF(-radius - penWidth / 2, -radius - penWidth / 2,
diameter + penWidth, diameter + penWidth);
} См. также boundingRegion(), shape(), contains(), Систему координат графического представления и prepareGeometryChange().
QRegion QGraphicsItem::boundingRegion(const QTransform &itemToDeviceTransform) const
Возвращает область границ элемента. Координатное пространство возвращённой области зависит от itemToDeviceTransform. Если вы передадите тождественное преобразование QTransform в качестве параметра, эта функция вернёт локальную координатную область.
Область границ описывает грубый контур визуального содержимого элемента. Хотя её вычисление дорогостоящее, она также точнее, чем boundingRect(), и может помочь избежать ненужной перерисовки при обновлении элемента. Это особенно эффективно для тонких элементов (например, линий или простых многоугольников). Вы можете настроить точность области границ, вызвав setBoundingRegionGranularity(). По умолчанию точность равна 0; в этом случае область границ элемента совпадает с его прямоугольником.
itemToDeviceTransform — это преобразование от координат элемента к координатам устройства. Если вы хотите, чтобы эта функция возвращала QRegion в координатах сцены, вы можете передать sceneTransform() в качестве аргумента.
Эта функция была добавлена в Qt 4.4.
См. также boundingRegionGranularity().
qreal QGraphicsItem::boundingRegionGranularity() const
Возвращает точность области границ элемента; значение от 0 до 1 включительно. Значение по умолчанию — 0 (т. е. наименьшая точность, когда область границ соответствует прямоугольнику элемента).
Эта функция была добавлена в Qt 4.4.
См. также setBoundingRegionGranularity().
QGraphicsItem::CacheMode QGraphicsItem::cacheMode() const
Возвращает режим кэширования для этого элемента. Режим по умолчанию — NoCache (т. е. кэширование отключено, и вся отрисовка выполняется немедленно).
Эта функция была добавлена в Qt 4.4.
См. также setCacheMode().
QList<QGraphicsItem *> QGraphicsItem::childItems() const
Возвращает список дочерних элементов этого элемента.
Элементы отсортированы по порядку стекирования. Это учитывает как порядок вставки элементов, так и их значения Z.
Эта функция была добавлена в Qt 4.4.
См. также setParentItem(), zValue() и Сортировка.
QRectF QGraphicsItem::childrenBoundingRect() const
Возвращает прямоугольник границ для потомков этого элемента (т. е. его дочерних элементов, их дочерних элементов и т. д.) в локальных координатах. Прямоугольник будет содержать всех потомков после того, как они будут отображены в локальных координатах. Если у элемента нет дочерних элементов, эта функция возвращает пустой QRectF.
Это не включает собственный прямоугольник границ этого элемента; он возвращает только накопленный прямоугольник границ его потомков. Если вам нужно включить прямоугольник границ этого элемента, вы можете добавить boundingRect() к childrenBoundingRect() с помощью QRectF::operator|().
Эта функция имеет линейную сложность; она определяет размер возвращаемого прямоугольника границ, перебирая всех потомков.
См. также boundingRect() и sceneBoundingRect().
void QGraphicsItem::clearFocus()
Убирает фокус ввода с клавиатуры с элемента.
Если у него есть фокус, элементу отправляется событие потери фокуса, чтобы сообщить ему, что он собирается его потерять.
Только элементы, установившие флаг ItemIsFocusable, или виджеты, установившие соответствующую политику фокуса, могут принимать фокус клавиатуры.
См. также setFocus(), hasFocus() и QGraphicsWidget::focusPolicy.
QPainterPath QGraphicsItem::clipPath() const
Возвращает обрезной путь этого элемента или пустой QPainterPath, если этот элемент не обрезан. Обрезной путь ограничивает внешний вид и взаимодействие элемента (т. е. ограничивает область, в которой элемент может рисовать и принимать события).
Вы можете включить обрезку, установив флаги ItemClipsToShape или ItemClipsChildrenToShape. Обрезной путь элемента вычисляется путём пересечения форм всех предков, использующих обрезку. Если элемент устанавливает ItemClipsToShape, конечный обрезанный путь пересекается с собственной формой элемента.
Примечание: Обрезка вносит штраф на производительность для всех вовлечённых элементов; в целом следует избегать использования обрезки, если это возможно (например, если ваши элементы всегда рисуют внутри boundingRect() или shape() границ, обрезка не нужна).
Эта функция была добавлена в Qt 4.5.
См. также isClipped(), shape() и setFlags().
[virtual] bool QGraphicsItem::collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Возвращает true если этот элемент пересекается с other; в противном случае возвращает false.
Режим mode применяется к other, а полученная форма или прямоугольник ограничительной рамки затем сравниваются с формой этого элемента. Значение по умолчанию для mode — Qt::IntersectsItemShape; other сталкивается с этим элементом, если он либо пересекается, либо содержит, либо содержится в форме этого элемента (см. Qt::ItemSelectionMode для подробностей).
Реализация по умолчанию основана на пересечении форм и вызывает shape() для обоих элементов. Из-за того, что сложность произвольного пересечения форм растёт на порядок при использовании сложных форм, эта операция может быть заметно ресурсоёмкой. У вас есть возможность переопределить эту функцию в подклассе QGraphicsItem, чтобы предоставить собственный алгоритм. Это позволяет использовать естественные ограничения в формах ваших собственных элементов, чтобы повысить производительность обнаружения столкновений. Например, столкновение двух не преобразованных идеальных круговых элементов может быть определено очень эффективно путем сравнения их позиций и радиусов.
Помните, что при переопределении этой функции и вызове shape() или boundingRect() для other, возвращаемые координаты должны быть отображены в системе координат этого элемента, прежде чем произойдет любое пересечение.
См. также contains() и shape().
[virtual] bool QGraphicsItem::collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Возвращает true если этот элемент сталкивается с path.
Столкновение определяется mode. Значение по умолчанию для mode — Qt::IntersectsItemShape; path сталкивается с этим элементом, если он либо пересекается, либо содержит, либо содержится в форме этого элемента.
Обратите внимание, что эта функция проверяет, содержится ли форма или прямоугольник ограничительной рамки элемента (в зависимости от mode) в path, а не содержится ли path в форме или прямоугольнике ограничительной рамки элемента.
См. также collidesWithItem(), contains() и shape().
QList<QGraphicsItem *> QGraphicsItem::collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Возвращает список всех элементов, которые сталкиваются с этим элементом.
Способ обнаружения столкновений определяется путем применения mode к элементам, которые сравниваются с этим элементом, т.е. форма или прямоугольник ограничительной рамки каждого элемента проверяется на соответствие форме этого элемента. Значение по умолчанию для mode — Qt::IntersectsItemShape.
См. также collidesWithItem().
QGraphicsItem *QGraphicsItem::commonAncestorItem(const QGraphicsItem *other) const
Возвращает ближайшего общего предка этого элемента и other, или 0, если other равен 0 или общего предка нет.
Эта функция была введена в Qt 4.4.
См. также isAncestorOf().
[virtual] bool QGraphicsItem::contains(const QPointF &point) const
Возвращает true если этот элемент содержит point, которая находится в локальных координатах; в противном случае возвращается false. Чаще всего его вызывает QGraphicsView, чтобы определить, какой элемент находится под курсором, и поэтому реализация этой функции должна быть максимально легкой.
По умолчанию эта функция вызывает shape(), но вы можете переопределить её в подклассе, чтобы предоставить более (возможно, более эффективную) реализацию.
См. также shape(), boundingRect() и collidesWithPath().
[virtual protected] void QGraphicsItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Обработчик этого события может быть переопределён в подклассе для обработки событий контекстного меню. Параметр event содержит подробности о обрабатываемом событии.
Если вы игнорируете событие (т.е., вызывая QEvent::ignore()), event будет распространяться на любой элемент под этим элементом. Если ни один элемент не примет событие, оно будет проигнорировано сценой и распространено на представление.
Обычно вы открываете QMenu в ответ на получение события контекстного меню. Пример:
void CustomItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
QMenu menu;
QAction *removeAction = menu.addAction("Remove");
QAction *markAction = menu.addAction("Mark");
QAction *selectedAction = menu.exec(event->screenPos());
// ...
} Реализация по умолчанию игнорирует событие.
См. также sceneEvent().
QCursor QGraphicsItem::cursor() const
Возвращает текущую форму курсора для элемента. Курсор мыши примет эту форму, когда он будет над этим элементом. См. список предопределённых объектов курсора для ряда полезных форм.
Элемент редактора может использовать курсор формы «лупа»:
item->setCursor(Qt::IBeamCursor);
Если курсор не был установлен, используется курсор элемента, находящегося под ним.
См. также setCursor(), hasCursor(), unsetCursor(), QWidget::cursor и QApplication::overrideCursor().
QVariant QGraphicsItem::data(int key) const
Возвращает пользовательские данные этого элемента для ключа key в виде QVariant.
Пользовательские данные элемента полезны для хранения произвольных свойств в любом элементе. Пример:
static const int ObjectName = 0;
QGraphicsItem *item = scene.itemAt(100, 50);
if (item->data(ObjectName).toString().isEmpty()) {
if (qgraphicsitem_cast<ButtonItem *>(item))
item->setData(ObjectName, "Button");
} Qt не использует эту функцию для хранения данных; она предоставляется только для удобства пользователя.
См. также setData().
QTransform QGraphicsItem::deviceTransform(const QTransform &viewportTransform) const
Возвращает матрицу преобразования устройства этого элемента, используя viewportTransform для отображения из сцены в устройства координат. Эта матрица может быть использована для отображения координат и геометрических фигур из локальной системы координат этого элемента в систему координат представления (или любой системы устройства). Для отображения координат из представления вы должны сначала инвертировать возвращенную матрицу.
Пример:
QGraphicsRectItem rect; rect.setPos(100, 100); rect.deviceTransform(view->viewportTransform()).map(QPointF(0, 0)); // returns the item's (0, 0) point in view's viewport coordinates rect.deviceTransform(view->viewportTransform()).inverted().map(QPointF(100, 100)); // returns view's viewport's (100, 100) coordinate in item coordinates
Эта функция такая же, как комбинация преобразования сцены этого элемента с преобразованием представления представления, но она также понимает флаг ItemIgnoresTransformations. Преобразование устройства может быть использовано для точного отображения координат (и обнаружения столкновений) для элементов, которые не преобразуются.
Эта функция была введена в Qt 4.3.
См. также transform(), setTransform(), scenePos(), Система координат представления графических элементов и itemTransform().
[virtual protected] void QGraphicsItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
Этот обработчик событий может быть переопределен в подклассе для получения событий drag enter для этого элемента. События drag enter генерируются при входе курсора в область элемента.
Принимая событие (т.е., вызывая QEvent::accept()), элемент примет события drop, кроме событий drag move и drag leave. В противном случае событие будет проигнорировано и передано элементу, расположенному под ним. Если событие принято, элемент получит событие drag move, прежде чем управление вернется в цикл событий.
Типичная реализация dragEnterEvent принимает или игнорирует event в зависимости от ассоциированных данных mime в event. Пример:
CustomItem::CustomItem()
{
setAcceptDrops(true);
...
}
void CustomItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
event->setAccepted(event->mimeData()->hasFormat("text/plain"));
} Элементы не получают событий drag and drop по умолчанию; для включения этой функции вызовите setAcceptDrops(true).
Реализация по умолчанию ничего не делает.
См. также dropEvent(), dragMoveEvent() и dragLeaveEvent().
[virtual protected] void QGraphicsItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
Этот обработчик событий может быть переопределён в подклассе для получения событий drag leave для этого элемента. События drag leave генерируются при выходе курсора из области элемента. Чаще всего вам не придётся переопределять эту функцию, но она может быть полезна для сброса состояния в вашем элементе (например, подсветки).
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
Элементы не получают события перетаскивания и опускания по умолчанию; для включения этой функции вызовите setAcceptDrops(true).
Реализация по умолчанию ничего не делает.
См. также dragEnterEvent(), dropEvent() и dragMoveEvent().
[virtual protected] void QGraphicsItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
Этот обработчик событий может быть переопределен в подклассе для получения событий drag move для этого элемента. События drag move генерируются при перемещении курсора внутри области элемента. Чаще всего вам не нужно переопределять эту функцию; она используется для указания, что только части элемента могут принимать опускания.
Вызов QEvent::ignore() или QEvent::accept() на event переключает возможность элемента принимать вставки в позиции, заданной событием. По умолчанию, event принимается, что означает, что элемент разрешает вставки в указанной позиции.
Элементы по умолчанию не получают события перетаскивания и вставки; чтобы включить эту функцию, вызовите setAcceptDrops(true).
Реализация по умолчанию ничего не делает.
См. также dropEvent(), dragEnterEvent() и dragLeaveEvent().
[virtual protected] void QGraphicsItem::dropEvent(QGraphicsSceneDragDropEvent *event)
Этот обработчик событий для события event может быть переопределён для получения событий вставки для этого элемента. Элементы могут получать события вставки только в том случае, если последнее событие перемещения перетаскивания было принято.
Вызов QEvent::ignore() или QEvent::accept() на event не имеет эффекта.
Элементы по умолчанию не получают события перетаскивания и вставки; чтобы включить эту функцию, вызовите setAcceptDrops(true).
Реализация по умолчанию ничего не делает.
См. также dragEnterEvent(), dragMoveEvent() и dragLeaveEvent().
qreal QGraphicsItem::effectiveOpacity() const
Возвращает эффективную непрозрачность этого элемента, которая находится в диапазоне от 0.0 (прозрачный) до 1.0 (непрозрачный). Это значение представляет собой комбинацию локальной непрозрачности этого элемента и непрозрачности его родителя и предков. Эффективная непрозрачность определяет, как элемент будет отображён.
Эта функция была введена в Qt 4.5.
См. также opacity(), setOpacity(), paint(), ItemIgnoresParentOpacity и ItemDoesntPropagateOpacityToChildren.
void QGraphicsItem::ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50)
Если этот элемент является частью сцены, отображаемой с помощью QGraphicsView, эта вспомогательная функция попытается прокрутить представление, чтобы обеспечить видимость rect внутри области просмотра. Если rect является пустым прямоугольником (по умолчанию), QGraphicsItem использует прямоугольник ограничительной рамки элемента. xmargin и ymargin — количество пикселей, используемых для отступов.
Если указанный прямоугольник недоступен, содержимое прокручивается до ближайшей допустимой позиции.
Если этот элемент не отображается с помощью QGraphicsView, эта функция ничего не делает.
См. также QGraphicsView::ensureVisible().
void QGraphicsItem::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = ..., int ymargin = ...)
Эта вспомогательная функция эквивалентна вызову ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).
bool QGraphicsItem::filtersChildEvents() const
Возвращает true если этот элемент фильтрует события потомков (т.е., все события, предназначенные для любого из его потомков, вместо этого отправляются этому элементу); в противном случае возвращается false.
Значение по умолчанию — false; события потомков не фильтруются.
Эта функция была введена в Qt 4.6.
См. также setFiltersChildEvents().
QGraphicsItem::GraphicsItemFlags QGraphicsItem::flags() const
Возвращает флаги этого элемента. Флаги описывают, какие настраиваемые функции элемента включены, а какие нет. Например, если флаги включают ItemIsFocusable, элемент может принимать фокус ввода.
По умолчанию, флаги не включены.
См. также setFlags() и setFlag().
[virtual protected] void QGraphicsItem::focusInEvent(QFocusEvent *event)
Этот обработчик событий для события event может быть переопределен для получения событий получения фокуса для этого элемента. Реализация по умолчанию вызывает ensureVisible().
См. также focusOutEvent(), sceneEvent() и setFocus().
QGraphicsItem *QGraphicsItem::focusItem() const
Если этот элемент, дочерний или потомок этого элемента, в настоящее время имеет фокус ввода, эта функция вернёт указатель на этот элемент. Если у потомка нет фокуса ввода, возвращается 0.
Эта функция была введена в Qt 4.6.
См. также hasFocus(), setFocus() и QWidget::focusWidget().
[virtual protected] void QGraphicsItem::focusOutEvent(QFocusEvent *event)
Этот обработчик событий для события event может быть переопределен для получения событий выхода из фокуса для этого элемента. Реализация по умолчанию ничего не делает.
См. также focusInEvent(), sceneEvent() и setFocus().
QGraphicsItem *QGraphicsItem::focusProxy() const
Возвращает прокси фокуса этого элемента или 0, если у этого элемента нет прокси фокуса.
Эта функция была введена в Qt 4.6.
См. также setFocusProxy(), setFocus() и hasFocus().
void QGraphicsItem::grabKeyboard()
Захватывает ввод с клавиатуры.
Элемент будет получать все ввод с клавиатуры в сцену до тех пор, пока не произойдёт одно из следующих событий:
- Элемент становится невидимым
- Элемент удаляется из сцены
- Элемент удаляется
- Элемент вызывает ungrabKeyboard()
- Другой элемент вызывает grabKeyboard(); элемент вернёт захват клавиатуры, когда другой элемент вызовет ungrabKeyboard().
Когда элемент получает захват клавиатуры, он получает событие QEvent::GrabKeyboard. Когда он теряет захват клавиатуры, он получает событие QEvent::UngrabKeyboard. Эти события могут быть использованы для определения того, когда ваш элемент получает или теряет захват клавиатуры другими способами, кроме получения фокуса ввода.
Практически никогда нет необходимости явным образом захватывать клавиатуру в Qt, так как Qt делает это разумно. В частности, Qt захватывает клавиатуру, когда ваш элемент получает фокус ввода, и отпускает её, когда ваш элемент теряет фокус ввода или когда элемент скрыт.
Обратите внимание, что только видимые элементы могут захватывать ввод с клавиатуры. Вызов grabKeyboard() на невидимом элементе не имеет эффекта.
События клавиатуры не затрагиваются.
Эта функция была введена в Qt 4.4.
См. также ungrabKeyboard(), grabMouse() и setFocus().
void QGraphicsItem::grabMouse()
Захватывает ввод с мыши.
Этот элемент будет получать все события мыши для сцены до тех пор, пока не произойдёт одно из следующих событий:
- Элемент становится невидимым
- Элемент удаляется из сцены
- Элемент удаляется
- Элемент вызывает ungrabMouse()
- Другой элемент вызывает grabMouse(); элемент вернёт захват мыши, когда другой элемент вызовет ungrabMouse().
Когда элемент получает захват мыши, он получает событие QEvent::GrabMouse. Когда он теряет захват мыши, он получает событие QEvent::UngrabMouse. Эти события могут быть использованы для определения того, когда ваш элемент получает или теряет захват мыши другими способами, кроме получения событий нажатия клавиш мыши.
Практически никогда нет необходимости явным образом захватывать мышь в Qt, так как Qt делает это разумно. В частности, Qt захватывает мышь, когда вы нажимаете кнопку мыши, и удерживает захват мыши до тех пор, пока вы не отпустите последнюю кнопку мыши. Кроме того, виджеты Qt::Popup неявным образом вызывают grabMouse(), когда они отображаются, и ungrabMouse(), когда они скрыты.
Обратите внимание, что только видимые элементы могут захватывать ввод с мыши. Вызов grabMouse() на невидимом элементе не имеет эффекта.
События клавиатуры не затрагиваются.
См. также QGraphicsScene::mouseGrabberItem(), ungrabMouse() и grabKeyboard().
QGraphicsEffect *QGraphicsItem::graphicsEffect() const
Возвращает указатель на эффект этого элемента, если он есть; в противном случае 0.
Эта функция была введена в Qt 4.6.
См. также setGraphicsEffect().
QGraphicsItemGroup *QGraphicsItem::group() const
Возвращает указатель на группу элементов этого элемента или 0, если этот элемент не является членом группы.
См. также setGroup(), QGraphicsItemGroup и QGraphicsScene::createItemGroup().
END_OF_DOCUMENT_MARKER ```bool QGraphicsItem::hasCursor() const
Возвращает true если для этого элемента задан курсор; в противном случае возвращается false.
По умолчанию у элементов курсор не задан. cursor() вернёт стандартный курсор указателя.
См. также unsetCursor().
bool QGraphicsItem::hasFocus() const
Возвращает true если этот элемент активен и у него или его заместителя фокуса есть фокус ввода с клавиатуры; в противном случае возвращает false.
См. также focusItem(), setFocus(), QGraphicsScene::setFocusItem(), и isActive().
void QGraphicsItem::hide()
Скрывает элемент (элементы по умолчанию отображаются).
Эта вспомогательная функция эквивалентна вызову setVisible(false).
См. также show() и setVisible().
[virtual protected] void QGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий ввода мыши над элементом. По умолчанию вызывается update; в противном случае ничего не выполняется.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
См. также hoverMoveEvent(), hoverLeaveEvent(), sceneEvent(), и setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий выхода мыши за пределы элемента. По умолчанию вызывается update; в противном случае ничего не выполняется.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
См. также hoverEnterEvent(), hoverMoveEvent(), sceneEvent(), и setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий перемещения мыши над элементом. По умолчанию ничего не выполняется.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
См. также hoverEnterEvent(), hoverLeaveEvent(), sceneEvent(), и setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::inputMethodEvent(QInputMethodEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий метода ввода для этого элемента. По умолчанию событие игнорируется.
См. также inputMethodQuery() и sceneEvent().
Qt::InputMethodHints QGraphicsItem::inputMethodHints() const
Возвращает текущие подсказки метода ввода для этого элемента.
Подсказки метода ввода важны только для элементов ввода. Подсказки используются методом ввода для указания, как он должен работать. Например, если установлен флаг Qt::ImhNumbersOnly, метод ввода может изменить свои визуальные компоненты, чтобы отразить, что можно вводить только цифры.
Эффект может различаться между реализациями методов ввода.
Эта функция была добавлена в Qt 4.6.
См. также setInputMethodHints() и inputMethodQuery().
[virtual protected] QVariant QGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const
Этот метод важен только для элементов ввода. Он используется методом ввода для запроса набора свойств элемента, чтобы иметь возможность поддерживать сложные операции метода ввода, такие как поддержка окружающего текста и обратные преобразования. query задаёт, какое свойство запрошено.
См. также inputMethodEvent() и QInputMethodEvent.
void QGraphicsItem::installSceneEventFilter(QGraphicsItem *filterItem)
Устанавливает фильтр событий для этого элемента на filterItem, заставляя все события для этого элемента сначала пройти через функцию sceneEventFilter() filterItem.
Для фильтрации событий другого элемента установите этот элемент как фильтр событий для другого элемента. Пример:
QGraphicsScene scene; QGraphicsEllipseItem *ellipse = scene.addEllipse(QRectF(-10, -10, 20, 20)); QGraphicsLineItem *line = scene.addLine(QLineF(-10, -10, 20, 20)); line->installSceneEventFilter(ellipse); // line's events are filtered by ellipse's sceneEventFilter() function. ellipse->installSceneEventFilter(line); // ellipse's events are filtered by line's sceneEventFilter() function.
Элемент может фильтровать события только для других элементов в той же сцене. Также элемент не может фильтровать свои собственные события; вместо этого можно непосредственно переопределить sceneEvent().
Для установки и использования фильтров событий сцены элементы должны принадлежать сцене.
См. также removeSceneEventFilter(), sceneEventFilter(), и sceneEvent().
bool QGraphicsItem::isActive() const
Возвращает true если этот элемент активен; в противном случае возвращает false.
Элемент может быть активен только в том случае, если сцена активна. Элемент активен, если он или является потомком активной панели. Элементы на неактивных панелях не активны.
Элементы, которые не являются частью панели, следуют активации сцены, когда сцена не имеет активной панели.
Только активные элементы могут получить фокус ввода.
Эта функция была добавлена в Qt 4.6.
См. также QGraphicsScene::isActive(), QGraphicsScene::activePanel(), panel(), и isPanel().
bool QGraphicsItem::isAncestorOf(const QGraphicsItem *child) const
Возвращает true если этот элемент является предком child (то есть, если этот элемент является родителем child или одним из предков родителя child).
См. также parentItem().
bool QGraphicsItem::isBlockedByModalPanel(QGraphicsItem **blockingPanel = nullptr) const
Возвращает true если этот элемент заблокирован модальной панелью; в противном случае — false. Если blockingPanel не равен нулю, blockingPanel будет установлен на модальную панель, блокирующую этот элемент. Если этот элемент не заблокирован, blockingPanel не будет установлен этой функцией.
Эта функция всегда возвращает false для элементов, не находящихся в сцене.
Эта функция была добавлена в Qt 4.6.
См. также panelModality(), setPanelModality(), и PanelModality.
bool QGraphicsItem::isClipped() const
Возвращает true если этот элемент обрезан. Элемент обрезан, если он установил флаг ItemClipsToShape или если он или любой из его предков установили флаг ItemClipsChildrenToShape.
Обрезка влияет на внешний вид элемента (то есть, вывод), а также на доставку событий мыши и наведения.
См. также clipPath(), shape(), и setFlags().
bool QGraphicsItem::isEnabled() const
Возвращает true если элемент включён; в противном случае возвращается false.
См. также setEnabled().
bool QGraphicsItem::isObscured(const QRectF &rect = QRectF()) const
Это перегруженная функция.
Возвращает true если rect полностью скрыта непрозрачной формой любого из пересекающихся элементов над ним (т.е. с более высоким значением Z, чем у этого элемента).
Эта функция была добавлена в Qt 4.3.
См. также opaqueArea().
bool QGraphicsItem::isObscured(qreal x, qreal y, qreal w, qreal h) const
Это перегруженная функция.
Эта вспомогательная функция эквивалентна вызову isObscured(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
[virtual] bool QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const
Возвращает true если прямоугольник области отображения данного элемента полностью скрыт непрозрачной формой элемента item.
Базовая реализация отображает непрозрачную область (item's opaqueArea() в систему координат этого элемента, а затем проверяет, полностью ли прямоугольник области отображения (this item's boundingRect()) содержится в отображённой форме.
Вы можете переопределить эту функцию, чтобы использовать собственный алгоритм для определения, скрыт ли данный элемент элементом item.
См. также opaqueArea() и isObscured().
bool QGraphicsItem::isPanel() const
Возвращает true если элемент является панелью; в противном случае возвращает false.
Эта функция была добавлена в Qt 4.6.
См. также QGraphicsItem::panel() и ItemIsPanel.
bool QGraphicsItem::isSelected() const
Возвращает true если данный элемент выбран; в противном случае возвращается false.
Элементы, находящиеся в группе, наследуют состояние выбора группы.
Элементы по умолчанию не выбраны.
См. также setSelected() и QGraphicsScene::setSelectionArea().
bool QGraphicsItem::isUnderMouse() const
Возвращает true если данный элемент находится под курсором мыши в одном из представлений; в противном случае возвращается false.
Эта функция была добавлена в Qt 4.4.
См. также QGraphicsScene::views() и QCursor::pos().
bool QGraphicsItem::isVisible() const
Возвращает true если элемент видим; в противном случае возвращается false.
Обратите внимание, что общая видимость элемента не связана с тем, визуализируется ли он в действительности QGraphicsView.
См. также setVisible().
bool QGraphicsItem::isVisibleTo(const QGraphicsItem *parent) const
Возвращает true если элемент видим для parent; в противном случае возвращается false. parent может быть 0, в этом случае функция вернёт, видим ли элемент для сцены.
Элемент может быть невидим для своих предков, даже если isVisible() равно true. Он также может быть видим для своих предков, даже если isVisible() равно false. Если какой-либо предок скрыт, сам элемент будет неявным образом скрыт, и функция вернёт false.
Эта функция была добавлена в Qt 4.4.
См. также isVisible() и setVisible().
bool QGraphicsItem::isWidget() const
Возвращает true если этот элемент является виджетом (т.е. QGraphicsWidget); в противном случае возвращает false.
Эта функция была добавлена в Qt 4.4.
bool QGraphicsItem::isWindow() const
Возвращает true если элемент является окном виджета QGraphicsWidget, в противном случае возвращает false.
Эта функция была добавлена в Qt 4.4.
См. также QGraphicsWidget::windowFlags().
[virtual protected] QVariant QGraphicsItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
Этот виртуальный метод вызывается QGraphicsItem для уведомления пользовательских элементов о том, что изменилась какая-то часть их состояния. Переопределив этот метод, вы можете отреагировать на изменение, и в некоторых случаях (в зависимости от change) внести корректировки.
change — параметр изменяемого элемента. value — новое значение; тип значения зависит от change.
Пример:
QVariant Component::itemChange(GraphicsItemChange change, const QVariant &value)
{
if (change == ItemPositionChange && scene()) {
// value is the new position.
QPointF newPos = value.toPointF();
QRectF rect = scene()->sceneRect();
if (!rect.contains(newPos)) {
// Keep the item inside the scene rect.
newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left())));
newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top())));
return newPos;
}
}
return QGraphicsItem::itemChange(change, value);
} По умолчанию реализация ничего не делает и возвращает value.
Примечание: Некоторые функции QGraphicsItem не могут быть вызваны в переопределении этого метода; см. документацию к GraphicsItemChange для получения подробной информации.
См. также GraphicsItemChange.
QTransform QGraphicsItem::itemTransform(const QGraphicsItem *other, bool *ok = nullptr) const
Возвращает QTransform, который преобразует координаты из системы координат данного элемента в систему координат other. Если ok не равен null, и такого преобразования не существует, булево значение, на которое указывает ok, будет установлено в false; в противном случае оно будет установлено в true.
Это преобразование предоставляет альтернативу функциям mapToItem() или mapFromItem(), возвращая соответствующее преобразование, чтобы вы могли самостоятельно преобразовывать фигуры и координаты. Это также помогает писать более эффективный код при многократном преобразовании между теми же двумя элементами.
Примечание: В редких случаях нет преобразования, которое может преобразовать координаты между двумя элементами.
Эта функция была добавлена в Qt 4.5.
См. также mapToItem(), mapFromItem() и deviceTransform().
[virtual protected] void QGraphicsItem::keyPressEvent(QKeyEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий нажатия клавиш для данного элемента. По умолчанию обработчик игнорирует событие. Если вы переопределяете этот обработчик, событие по умолчанию будет принято.
Обратите внимание, что события нажатия клавиш принимаются только для элементов, для которых установлен флаг ItemIsFocusable, и у которых есть фокус клавиатуры.
См. также keyReleaseEvent(), setFocus(), QGraphicsScene::setFocusItem() и sceneEvent().
[virtual protected] void QGraphicsItem::keyReleaseEvent(QKeyEvent *event)
Этот обработчик событий, для события event, может быть переопределён для получения событий отпускания клавиш для данного элемента. По умолчанию обработчик игнорирует событие. Если вы переопределяете этот обработчик, событие по умолчанию будет принято.
Обратите внимание, что события нажатия клавиш принимаются только для элементов, для которых установлен флаг ItemIsFocusable, и у которых есть фокус клавиатуры.
См. также keyPressEvent(), setFocus(), QGraphicsScene::setFocusItem() и sceneEvent().
QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPointF &point) const
Преобразует точку point, которая находится в системе координат item, в систему координат данного элемента и возвращает преобразованную координату.
Если item равен 0, эта функция возвращает то же, что и mapFromScene().
См. также itemTransform(), mapFromParent(), mapFromScene(), transform(), mapToItem() и Систему координат графического представления.
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат item, в систему координат данного элемента и возвращает преобразованный прямоугольник в виде многоугольника.
Если item равен 0, эта функция возвращает то же, что и mapFromScene()
См. также itemTransform(), mapToItem(), mapFromParent(), transform() и Систему координат графического представления.
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const
Преобразует многоугольник polygon, который находится в системе координат item, в систему координат данного элемента и возвращает преобразованный многоугольник.
Если item равен 0, эта функция возвращает то же, что и mapFromScene().
См. также itemTransform(), mapToItem(), mapFromParent(), transform() и Систему координат графического представления.
QPainterPath QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const
Преобразует путь path, который находится в системе координат item, в систему координат данного элемента и возвращает преобразованный путь.
Если item равен 0, эта функция возвращает то же, что и mapFromScene().
См. также itemTransform(), mapFromParent(), mapFromScene(), mapToItem() и Систему координат Вид графики.
QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const
Это перегруженная функция.
Эта функция-утилита эквивалентна вызову mapFromItem(item, QPointF(x, y)).
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Эта функция-утилита эквивалентна вызову mapFromItem(item, QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
QPointF QGraphicsItem::mapFromParent(const QPointF &point) const
Преобразует точку point, которая находится в системе координат родительского элемента этого элемента, в систему координат этого элемента и возвращает преобразованную координату.
См. также mapFromItem(), mapFromScene(), transform(), mapToParent() и Систему координат Вид графики.
QPolygonF QGraphicsItem::mapFromParent(const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат родительского элемента этого элемента, в систему координат этого элемента и возвращает преобразованный прямоугольник в виде многоугольника.
См. также mapToParent(), mapFromItem(), transform() и Систему координат Вид графики.
QPolygonF QGraphicsItem::mapFromParent(const QPolygonF &polygon) const
Преобразует многоугольник polygon, который находится в системе координат родительского элемента этого элемента, в систему координат этого элемента и возвращает преобразованный многоугольник.
См. также mapToParent(), mapToItem(), transform() и Систему координат Вид графики.
QPainterPath QGraphicsItem::mapFromParent(const QPainterPath &path) const
Преобразует путь path, который находится в системе координат родительского элемента этого элемента, в систему координат этого элемента и возвращает преобразованный путь.
См. также mapFromScene(), mapFromItem(), mapToParent() и Систему координат Вид графики.
QPointF QGraphicsItem::mapFromParent(qreal x, qreal y) const
Это перегруженная функция.
Эта функция-утилита эквивалентна вызову mapFromParent(QPointF(x, y)).
QPolygonF QGraphicsItem::mapFromParent(qreal x, qreal y, qreal w, qreal h) const
Эта функция-утилита эквивалентна вызову mapFromItem(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
QPointF QGraphicsItem::mapFromScene(const QPointF &point) const
Преобразует точку point, которая находится в системе координат сцены этого элемента, в систему координат этого элемента и возвращает преобразованную координату.
См. также mapFromItem(), mapFromParent(), transform(), mapToScene() и Систему координат Вид графики.
QPolygonF QGraphicsItem::mapFromScene(const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат сцены этого элемента, в систему координат этого элемента и возвращает преобразованный прямоугольник в виде многоугольника.
См. также mapToScene(), mapFromItem(), transform() и Систему координат Вид графики.
QPolygonF QGraphicsItem::mapFromScene(const QPolygonF &polygon) const
Преобразует многоугольник polygon, который находится в системе координат сцены этого элемента, в систему координат этого элемента и возвращает преобразованный многоугольник.
См. также mapToScene(), mapFromParent(), transform() и Систему координат Вид графики.
QPainterPath QGraphicsItem::mapFromScene(const QPainterPath &path) const
Преобразует путь path, который находится в системе координат сцены этого элемента, в систему координат этого элемента и возвращает преобразованный путь.
См. также mapFromParent(), mapFromItem(), mapToScene() и Систему координат Вид графики.
QPointF QGraphicsItem::mapFromScene(qreal x, qreal y) const
Это перегруженная функция.
Эта функция-утилита эквивалентна вызову mapFromScene(QPointF(x, y)).
QPolygonF QGraphicsItem::mapFromScene(qreal x, qreal y, qreal w, qreal h) const
Эта функция-утилита эквивалентна вызову mapFromScene(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат элемента item, в систему координат этого элемента и возвращает преобразованный прямоугольник как новый прямоугольник (т.е., ограничивающий прямоугольник результирующего многоугольника).
Если item равен 0, эта функция возвращает то же, что и mapRectFromScene().
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Систему координат Вид графики.
QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Эта функция-утилита эквивалентна вызову mapRectFromItem(item, QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QRectF QGraphicsItem::mapRectFromParent(const QRectF &rect) const
Преобразует прямоугольник rect, который задан в системе координат родительского элемента, в систему координат этого элемента и возвращает преобразованный прямоугольник (т.е., ограничивающий прямоугольник полученной фигуры).
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QRectF QGraphicsItem::mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const
Эта вспомогательная функция эквивалентна вызову mapRectFromParent(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QRectF QGraphicsItem::mapRectFromScene(const QRectF &rect) const
Преобразует прямоугольник rect, заданный в координатах сцены, в систему координат этого элемента и возвращает преобразованный прямоугольник (т.е., ограничивающий прямоугольник полученной фигуры).
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QRectF QGraphicsItem::mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const
Эта вспомогательная функция эквивалентна вызову mapRectFromScene(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const
Преобразует прямоугольник rect, заданный в системе координат этого элемента, в систему координат элемента item и возвращает преобразованный прямоугольник (т.е., ограничивающий прямоугольник полученной фигуры).
Если item равен 0, эта функция возвращает то же, что и mapRectToScene().
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Эта вспомогательная функция эквивалентна вызову mapRectToItem(item, QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QRectF QGraphicsItem::mapRectToParent(const QRectF &rect) const
Преобразует прямоугольник rect, заданный в системе координат этого элемента, в систему координат родительского элемента и возвращает преобразованный прямоугольник (т.е., ограничивающий прямоугольник полученной фигуры).
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QRectF QGraphicsItem::mapRectToParent(qreal x, qreal y, qreal w, qreal h) const
Эта вспомогательная функция эквивалентна вызову mapRectToParent(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QRectF QGraphicsItem::mapRectToScene(const QRectF &rect) const
Преобразует прямоугольник rect, заданный в системе координат этого элемента, в систему координат сцены и возвращает преобразованный прямоугольник (т.е., ограничивающий прямоугольник полученной фигуры).
Эта функция была добавлена в Qt 4.5.
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QRectF QGraphicsItem::mapRectToScene(qreal x, qreal y, qreal w, qreal h) const
Эта вспомогательная функция эквивалентна вызову mapRectToScene(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.5.
QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPointF &point) const
Преобразует точку point, заданную в системе координат этого элемента, в систему координат элемента item и возвращает преобразованную координату.
Если item равен 0, эта функция возвращает то же, что и mapToScene().
См. также itemTransform(), mapToParent(), mapToScene(), transform(), mapFromItem() и Система координат виджета Graphics View.
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QRectF &rect) const
Преобразует прямоугольник rect, заданный в системе координат этого элемента, в систему координат элемента item и возвращает преобразованный прямоугольник в виде многоугольника.
Если item равен 0, эта функция возвращает то же, что и mapToScene().
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const
Преобразует многоугольник polygon, заданный в системе координат этого элемента, в систему координат элемента item и возвращает преобразованный многоугольник.
Если item равен 0, эта функция возвращает то же, что и mapToScene().
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem() и Система координат виджета Graphics View.
QPainterPath QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPainterPath &path) const
Преобразует путь path, заданный в системе координат этого элемента, в систему координат элемента item и возвращает преобразованный путь.
Если item равен 0, эта функция возвращает то же, что и mapToScene().
См. также itemTransform(), mapToParent(), mapToScene(), mapFromItem(), и Систему координат Graphics View.
QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal x, qreal y) const
Это перегруженный метод.
Эта функция-удобство эквивалентна вызову mapToItem(item, QPointF(x, y)).
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Эта функция-удобство эквивалентна вызову mapToItem(item, QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
QPointF QGraphicsItem::mapToParent(const QPointF &point) const
Преобразует точку point, которая находится в системе координат этого элемента, в систему координат его родительского элемента и возвращает преобразованные координаты. Если у элемента нет родителя, point будет преобразована в систему координат сцены.
См. также mapToItem(), mapToScene(), transform(), mapFromParent(), и Систему координат Graphics View.
QPolygonF QGraphicsItem::mapToParent(const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат этого элемента, в систему координат его родительского элемента и возвращает преобразованный прямоугольник в виде многоугольника. Если у элемента нет родителя, rect будет преобразовано в систему координат сцены.
См. также mapToScene(), mapToItem(), mapFromParent(), и Систему координат Graphics View.
QPolygonF QGraphicsItem::mapToParent(const QPolygonF &polygon) const
Преобразует многоугольник polygon, который находится в системе координат этого элемента, в систему координат его родительского элемента и возвращает преобразованный многоугольник. Если у элемента нет родителя, polygon будет преобразовано в систему координат сцены.
См. также mapToScene(), mapToItem(), mapFromParent(), и Систему координат Graphics View.
QPainterPath QGraphicsItem::mapToParent(const QPainterPath &path) const
Преобразует путь path, который находится в системе координат этого элемента, в систему координат его родительского элемента и возвращает преобразованный путь. Если у элемента нет родителя, path будет преобразовано в систему координат сцены.
См. также mapToScene(), mapToItem(), mapFromParent(), и Систему координат Graphics View.
QPointF QGraphicsItem::mapToParent(qreal x, qreal y) const
Это перегруженный метод.
Эта функция-удобство эквивалентна вызову mapToParent(QPointF(x, y)).
QPolygonF QGraphicsItem::mapToParent(qreal x, qreal y, qreal w, qreal h) const
Эта функция-удобство эквивалентна вызову mapToParent(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
QPointF QGraphicsItem::mapToScene(const QPointF &point) const
Преобразует точку point, которая находится в системе координат этого элемента, в систему координат сцены и возвращает преобразованную координату.
См. также mapToItem(), mapToParent(), transform(), mapFromScene(), и Систему координат Graphics View.
QPolygonF QGraphicsItem::mapToScene(const QRectF &rect) const
Преобразует прямоугольник rect, который находится в системе координат этого элемента, в систему координат сцены и возвращает преобразованный прямоугольник в виде многоугольника.
См. также mapToParent(), mapToItem(), mapFromScene(), и Систему координат Graphics View.
QPolygonF QGraphicsItem::mapToScene(const QPolygonF &polygon) const
Преобразует многоугольник polygon, который находится в системе координат этого элемента, в систему координат сцены и возвращает преобразованный многоугольник.
См. также mapToParent(), mapToItem(), mapFromScene(), и Систему координат Graphics View.
QPainterPath QGraphicsItem::mapToScene(const QPainterPath &path) const
Преобразует путь path, который находится в системе координат этого элемента, в систему координат сцены и возвращает преобразованный путь.
См. также mapToParent(), mapToItem(), mapFromScene(), и Систему координат Graphics View.
QPointF QGraphicsItem::mapToScene(qreal x, qreal y) const
Это перегруженный метод.
Эта функция-удобство эквивалентна вызову mapToScene(QPointF(x, y)).
QPolygonF QGraphicsItem::mapToScene(qreal x, qreal y, qreal w, qreal h) const
Эта функция-удобство эквивалентна вызову mapToScene(QRectF(x, y, w, h)).
Эта функция была добавлена в Qt 4.3.
[virtual protected] void QGraphicsItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Этот обработчик событий для события event можно переопределить для получения событий двойного щелчка мыши для этого элемента.
При двойном щелчке по элементу элемент сначала получит событие нажатия мыши, за которым последуют события отпускания (т.е. щелчок), затем событие двойного щелчка и, наконец, событие отпускания.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
По умолчанию вызывается mousePressEvent(). Если при переопределении этой функции нужно сохранить базовую реализацию, в переопределении вызовите QGraphicsItem::mouseDoubleClickEvent().
Обратите внимание, что элемент не получит события двойного щелчка, если он не является выбираемым и не перемещаемым (в этом случае одиночные щелчки игнорируются, что останавливает генерацию двойных щелчков).
См. также mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), и sceneEvent().
[virtual protected] void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Обработчик событий для события event можно переопределить, чтобы получать события перемещения мыши для данного элемента. Если вы получаете это событие, вы можете быть уверены, что этот элемент также получил событие нажатия мыши, и что этот элемент является текущим захватом мыши.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
По умолчанию реализация обрабатывает основные взаимодействия с элементом, такие как выделение и перемещение. Если при переопределении функции вы хотите сохранить базовую реализацию, вызовите QGraphicsItem::mouseMoveEvent() в своём переопределении.
Обратите внимание, что mousePressEvent() определяет, какой графический элемент получает события мыши. Подробности см. в описании mousePressEvent().
См. также mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent() и sceneEvent().
[virtual protected] void QGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
Обработчик событий для события event можно переопределить, чтобы получать события нажатия мыши для этого элемента. События нажатия мыши доставляются только тем элементам, которые принимают нажатую кнопку мыши. По умолчанию элемент принимает все кнопки мыши, но вы можете изменить это, вызвав setAcceptedMouseButtons().
Событие нажатия мыши определяет, какой элемент должен стать захватом мыши (см. QGraphicsScene::mouseGrabberItem()). Если вы не переопределите эту функцию, событие нажатия будет распространяться на любой верхний элемент под этим элементом, и никакие другие события мыши не будут доставлены этому элементу.
Если вы переопределите эту функцию, по умолчанию event будет принят (см. QEvent::accept()), и этот элемент станет захватом мыши. Это позволит элементу получать будущие события перемещения, отпускания и двойного щелчка. Если вы вызовите QEvent::ignore() для event, этот элемент потеряет захват мыши, а event будет распространяться на любой верхний элемент под ним. Дальнейшие события мыши не будут доставлены этому элементу, пока не будет получено новое событие нажатия мыши.
По умолчанию реализация обрабатывает основные взаимодействия с элементом, такие как выделение и перемещение. Если при переопределении функции вы хотите сохранить базовую реализацию, вызовите QGraphicsItem::mousePressEvent() в своём переопределении.
Событие игнорируется для элементов, которые не являются ни перемещаемыми, ни выделяемыми.
См. также mouseMoveEvent(), mouseReleaseEvent(), mouseDoubleClickEvent() и sceneEvent().
[virtual protected] void QGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Обработчик событий для события event можно переопределить, чтобы получать события отпускания мыши для этого элемента.
Вызов QEvent::ignore() или QEvent::accept() для event не имеет эффекта.
По умолчанию реализация обрабатывает основные взаимодействия с элементом, такие как выделение и перемещение. Если при переопределении функции вы хотите сохранить базовую реализацию, вызовите QGraphicsItem::mouseReleaseEvent() в своём переопределении.
Обратите внимание, что mousePressEvent() определяет, какой графический элемент получает события мыши. Подробности см. в описании mousePressEvent().
См. также mousePressEvent(), mouseMoveEvent(), mouseDoubleClickEvent() и sceneEvent().
void QGraphicsItem::moveBy(qreal dx, qreal dy)
Перемещает элемент на dx единиц по горизонтали и dy единиц по вертикали. Эта функция эквивалентна вызову setPos(pos() + QPointF(dx, dy)).
qreal QGraphicsItem::opacity() const
Возвращает локальную непрозрачность этого элемента, которая находится в диапазоне от 0.0 (прозрачный) до 1.0 (непрозрачный). Это значение комбинируется с родительскими и предками в effectiveOpacity(). Эффективная непрозрачность определяет, как элемент отображается, а также влияет на его видимость при запросе функциями, такими как QGraphicsView::items().
Свойство непрозрачности определяет состояние художника, переданного в функцию paint(). Если элемент кэшируется, т.е. ItemCoordinateCache или DeviceCoordinateCache, эффективное свойство будет применено к кэшу элемента при его отображении.
По умолчанию непрозрачность равна 1.0; полностью непрозрачный.
Эта функция была добавлена в Qt 4.5.
См. также setOpacity(), paint(), ItemIgnoresParentOpacity и ItemDoesntPropagateOpacityToChildren.
[virtual] QPainterPath QGraphicsItem::opaqueArea() const
Эта виртуальная функция возвращает фигуру, представляющую область, где этот элемент непрозрачен. Область непрозрачна, если она заполнена непрозрачной кистью или цветом (т.е. не прозрачна).
Эта функция используется функцией isObscuredBy(), которая вызывается подлежащими элементами для определения, скрыт ли этот элемент данным элементом.
По умолчанию реализация возвращает пустой QPainterPath, указывая, что этот элемент полностью прозрачен и не скрывает другие элементы.
См. также isObscuredBy(), isObscured() и shape().
[pure virtual] void QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = ...)
Эта функция, обычно вызываемая QGraphicsView, отрисовывает содержимое элемента в локальных координатах.
Переопределите эту функцию в подклассе QGraphicsItem, чтобы предоставить реализацию отрисовки элемента, используя painter. Параметр option предоставляет параметры стиля для элемента, такие как его состояние, видимая область и подсказки уровня детализации. Аргумент widget необязательный. Если он задан, он указывает на виджет, на котором производится отрисовка; в противном случае он равен 0. Для кэшированной отрисовки widget всегда равен 0.
void RoundRectItem::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
} Перо художника по умолчанию имеет ширину 0, а его кисть инициализируется кистью QPalette::Text из палитры устройства отрисовки. Кисть инициализируется значением QPalette::Window.
Убедитесь, что вся отрисовка выполняется внутри границ boundingRect(), чтобы избежать артефактов отрисовки (поскольку QGraphicsView не обрезает художника за вас). В частности, когда QPainter отрисовывает контур фигуры с помощью назначенного QPen, половина контура будет нарисована снаружи, а половина внутри фигуры, которую вы рисуете (например, с шириной пера 2 единицы, вы должны нарисовать контуры на 1 единицу внутри boundingRect()). QGraphicsItem не поддерживает использование декоративных перьев с ненулевой шириной.
Вся отрисовка выполняется в локальных координатах.
Примечание: Элемент всегда должен перерисовывать себя таким же образом, если только не был вызван update(); в противном случае могут возникнуть визуальные артефакты. Другими словами, два последующих вызова paint() должны всегда производить один и тот же результат, если между ними не был вызван update().
Примечание: Включение кэширования для элемента не гарантирует, что paint() будет вызываться только один раз системой отображения графики, даже без явного вызова update(). Подробности см. в документации к setCacheMode().
См. также setCacheMode(), QPen::width(), Координаты элементов и ItemUsesExtendedStyleOption.
QGraphicsItem *QGraphicsItem::panel() const
Возвращает панель элемента или 0, если у этого элемента нет панели. Если элемент является панелью, он вернет себя. В противном случае он вернет ближайшего предка, который является панелью.
Эта функция была добавлена в Qt 4.6.
См. также isPanel() и ItemIsPanel.
QGraphicsItem::PanelModality QGraphicsItem::panelModality() const
Возвращает режим для этого элемента.
Эта функция была добавлена в Qt 4.6.
См. также setPanelModality().
QGraphicsItem *QGraphicsItem::parentItem() const
Возвращает указатель на родительский элемент этого элемента. Если у этого элемента нет родителя, возвращается 0.
См. также setParentItem() и childItems().
QGraphicsObject *QGraphicsItem::parentObject() const
Возвращает указатель на родительский элемент, приведенный к типу QGraphicsObject. Возвращает nullptr если родительский элемент не является объектом QGraphicsObject.
Эта функция была добавлена в Qt 4.6.
См. также parentItem() и childItems().
QGraphicsWidget *QGraphicsItem::parentWidget() const
Возвращает указатель на родительский виджет элемента. Родительский виджет элемента — это ближайший родительский элемент, являющийся виджетом.
Эта функция была добавлена в Qt 4.4.
См. также parentItem() и childItems().
QPointF QGraphicsItem::pos() const
Возвращает положение элемента в координатах родителя. Если у элемента нет родителя, его положение задается в координатах сцены.
Положение элемента описывает его начало (локальные координаты (0, 0)) в координатах родителя; эта функция возвращает то же самое, что и mapToParent(0, 0).
Для удобства вы также можете вызвать scenePos() для определения положения элемента в координатах сцены, независимо от его родителя.
См. также x(), y(), setPos(), transform() и Систему координат Визуализации графики.
[protected] void QGraphicsItem::prepareGeometryChange()
Подготавливает элемент к изменению геометрии. Вызывайте эту функцию перед изменением граничного прямоугольника элемента, чтобы сохранить индекс QGraphicsScene актуальным.
prepareGeometryChange() вызовет update() при необходимости.
Пример:
void CircleItem::setRadius(qreal newRadius)
{
if (radius != newRadius) {
prepareGeometryChange();
radius = newRadius;
}
} См. также boundingRect().
void QGraphicsItem::removeSceneEventFilter(QGraphicsItem *filterItem)
Удаляет фильтр событий для этого элемента от filterItem.
См. также installSceneEventFilter().
void QGraphicsItem::resetTransform()
Сбрасывает матрицу преобразования этого элемента до единичной матрицы или все свойства преобразования до их значений по умолчанию. Это эквивалентно вызову setTransform(QTransform()).
Эта функция была добавлена в Qt 4.3.
См. также setTransform() и transform().
qreal QGraphicsItem::rotation() const
Возвращает поворот по часовой стрелке в градусах вокруг оси Z. Значение по умолчанию равно 0 (т. е. элемент не повернут).
Поворот комбинируется со масштабированием элемента scale(), преобразованием transform() и преобразованиями transformations() для отображения системы координат элемента в родительском элементе.
Эта функция была добавлена в Qt 4.6.
См. также setRotation(), transformOriginPoint() и Преобразования.
qreal QGraphicsItem::scale() const
Возвращает коэффициент масштабирования элемента. Коэффициент масштабирования по умолчанию равен 1.0 (т. е. элемент не масштабируется).
Масштаб комбинируется с поворотом элемента rotation(), преобразованием transform() и преобразованиями transformations() для отображения системы координат элемента в родительском элементе.
Эта функция была добавлена в Qt 4.6.
См. также setScale(), rotation() и Преобразования.
QGraphicsScene *QGraphicsItem::scene() const
Возвращает текущую сцену для элемента или 0, если элемент не хранится в сцене.
Для добавления или перемещения элемента в сцену вызовите QGraphicsScene::addItem().
QRectF QGraphicsItem::sceneBoundingRect() const
Возвращает граничный прямоугольник этого элемента в координатах сцены, комбинируя sceneTransform() с boundingRect().
См. также boundingRect() и Систему координат Визуализации графики.
[virtual protected] bool QGraphicsItem::sceneEvent(QEvent *event)
Эта виртуальная функция получает события для этого элемента. Переопределите эту функцию, чтобы перехватывать события перед их передачей специализированным обработчикам событий contextMenuEvent(), focusInEvent(), focusOutEvent(), hoverEnterEvent(), hoverMoveEvent(), hoverLeaveEvent(), keyPressEvent(), keyReleaseEvent(), mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent() и mouseDoubleClickEvent().
Возвращает true если событие было распознано и обработано; в противном случае (например, если тип события не был распознан) возвращается false.
event — перехваченное событие.
[virtual protected] bool QGraphicsItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
Фильтрует события для элемента watched. event — отфильтрованное событие.
Переопределение этой функции в подклассе позволяет элементу использоваться в качестве фильтра событий для других элементов, перехватывая все события, отправленные этим элементам, перед их возможностью ответить.
Переопределения должны возвращать true, чтобы предотвратить дальнейшую обработку данного события, гарантируя, что оно не будет передано наблюдаемому элементу, или возвращать false, чтобы указать, что событие должно быть распространено дальше системой событий.
См. также installSceneEventFilter().
QPointF QGraphicsItem::scenePos() const
Возвращает положение элемента в координатах сцены. Это эквивалентно вызову mapToScene(0, 0).
См. также pos(), sceneTransform() и Систему координат Визуализации графики.
QTransform QGraphicsItem::sceneTransform() const
Возвращает матрицу преобразования сцены этого элемента. Эта матрица может быть использована для отображения координат и геометрических фигур из локальной системы координат этого элемента в систему координат сцены. Для отображения координат из сцены необходимо сначала инвертировать возвращенную матрицу.
Пример:
QGraphicsRectItem rect; rect.setPos(100, 100); rect.sceneTransform().map(QPointF(0, 0)); // returns QPointF(100, 100); rect.sceneTransform().inverted().map(QPointF(100, 100)); // returns QPointF(0, 0);
В отличие от transform(), которая возвращает только локальное преобразование элемента, эта функция включает положение элемента (и всех его родителей) и все свойства преобразования.
Эта функция была добавлена в Qt 4.3.
См. также transform(), setTransform(), scenePos(), Систему координат Визуализации графики и Преобразования.
void QGraphicsItem::scroll(qreal dx, qreal dy, const QRectF &rect = QRectF())
Прокручивает содержимое rect на dx, dy. Если rect — пустой прямоугольник (значение по умолчанию), прокручивается граничный прямоугольник элемента.
Прокрутка предоставляет быструю альтернативу простому перерисовыванию, когда содержимое элемента (или части элемента) смещается вертикально или горизонтально. В зависимости от текущего преобразования и возможностей устройства рисования (т. е. области просмотра), эта операция может состоять просто в перемещении пикселей из одного места в другое с помощью memmove(). В большинстве случаев это быстрее, чем перерисовывание всей области.
После прокрутки элемент выдаст обновление для вновь открытых областей. Если прокрутка не поддерживается (например, вы рисуете в области просмотра OpenGL, которая не выигрывает от оптимизаций прокрутки), эта функция эквивалентна вызову update(rect).
Примечание: Прокрутка поддерживается только при включенном QGraphicsItem::ItemCoordinateCache; во всех остальных случаях вызов этой функции эквивалентен вызову update(rect). Если вы точно знаете, что элемент непрозрачен и не перекрывается другими элементами, вы можете отобразить rect в координатах области просмотра и прокрутить область просмотра.
QTransform xform = item->deviceTransform(view->viewportTransform()); QRect deviceRect = xform.mapRect(rect).toAlignedRect(); view->viewport()->scroll(dx, dy, deviceRect);
Эта функция была добавлена в Qt 4.4.
См. также boundingRect().
void QGraphicsItem::setAcceptDrops(bool on)
Если on равно true, этот элемент будет принимать события перетаскивания и падения; в противном случае он прозрачен для событий перетаскивания и падения. По умолчанию элементы не принимают события перетаскивания и падения.
См. также acceptDrops().
void QGraphicsItem::setAcceptHoverEvents(bool enabled)
Если enabled равно true, этот элемент будет принимать события наведения курсора; в противном случае он их игнорирует. По умолчанию элементы не принимают события наведения курсора.
События наведения курсора передаются, когда нет активного элемента захвата мыши. Они отправляются, когда курсор мыши входит в элемент, перемещается внутри него и выходит из него. События наведения курсора обычно используются для выделения элемента при входе курсора и отслеживания его перемещения над элементом (аналогично QWidget::mouseTracking).
Родительские элементы получают события входа наведения курсора перед своими дочерними элементами, а события выхода — после них. Однако родитель не получает событие выхода наведения курсора, если курсор входит в дочерний элемент; родитель остаётся «под наведением» до тех пор, пока курсор не выйдет за пределы своей области, включая области своих дочерних элементов.
Если родительский элемент обрабатывает события дочерних элементов, он будет получать события перемещения курсора, перемещения при перетаскивании и события опускания, когда курсор проходит через своих дочерних элементов, но он не получает события входа наведения курсора и выхода наведения курсора, а также события входа при перетаскивании и выхода при перетаскивании от имени своих дочерних элементов.
QGraphicsWidget с декорациями окна будет принимать события наведения курсора независимо от значения acceptHoverEvents().
Функция была добавлена в Qt 4.4.
См. также acceptHoverEvents(), hoverEnterEvent(), hoverMoveEvent() и hoverLeaveEvent().
void QGraphicsItem::setAcceptTouchEvents(bool enabled)
Если enabled равно true, этот элемент будет принимать события касания; в противном случае он их игнорирует. По умолчанию элементы не принимают события касания.
Функция была добавлена в Qt 4.6.
См. также acceptTouchEvents().
void QGraphicsItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)
Устанавливает кнопки мыши buttons, для которых этот элемент принимает события мыши.
По умолчанию принимаются все кнопки мыши. Если элемент принимает кнопку мыши, он становится элементом захвата мыши, когда для этой кнопки передаётся событие нажатия мыши. Однако, если элемент не принимает кнопку мыши, QGraphicsScene передаст события мыши первому элементу под ним, который это делает.
Чтобы отключить события мыши для элемента (то есть сделать его прозрачным для событий мыши), вызовите setAcceptedMouseButtons(0).
См. также acceptedMouseButtons() и mousePressEvent().
void QGraphicsItem::setActive(bool active)
Если active равно true и сцена активна, панель этого элемента будет активирована. В противном случае панель деактивируется.
Если элемент не является частью активной сцены, active определит, что произойдёт с панелью, когда сцена станет активной или элемент будет добавлен в сцену. Если true, панель элемента будет активирована, когда элемент добавлен в сцену или сцена активирована. В противном случае элемент останется неактивным независимо от активного состояния сцены.
Функция была добавлена в Qt 4.6.
См. также isPanel(), QGraphicsScene::setActivePanel() и QGraphicsScene::isActive().
void QGraphicsItem::setBoundingRegionGranularity(qreal granularity)
Устанавливает гранулярность области ограничений на granularity; значение от 0 до 1 включительно. Значение по умолчанию — 0 (то есть самая низкая гранулярность, где область ограничений соответствует прямоугольнику ограничений элемента).
Гранулярность используется функцией boundingRegion() для расчёта того, насколько подробной должна быть область ограничений элемента. Максимально достижимая гранулярность — 1, где boundingRegion() вернёт самую точную контурную область, возможную для данного устройства (например, для области просмотра QGraphicsView это даёт область ограничений с точностью до пикселя). Минимально возможная гранулярность — 0. Значение granularity описывает соотношение между разрешением устройства и разрешением области ограничений (например, значение 0.25 обеспечит область, где каждый фрагмент соответствует 4x4 единицам/пикселям устройства).
Функция была добавлена в Qt 4.4.
См. также boundingRegionGranularity().
void QGraphicsItem::setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize())
Устанавливает режим кэширования элемента на mode.
Необязательный аргумент logicalCacheSize используется только в режиме ItemCoordinateCache и описывает разрешение буфера кэша; если logicalCacheSize равна (100, 100), QGraphicsItem поместит элемент в 100x100 пикселей в графической памяти, независимо от логического размера самого элемента. По умолчанию QGraphicsItem использует размер boundingRect(). Для всех режимов кэширования, кроме ItemCoordinateCache, logicalCacheSize игнорируется.
Кэширование может ускорить отрисовку, если элемент тратит значительное время на перерисовку. В некоторых случаях кэш также может замедлить отрисовку, особенно когда элемент тратит меньше времени на перерисовку, чем QGraphicsItem тратит на перерисовку из кэша.
При включённом кэшировании функция paint() элемента, как правило, рисует в кэш отложенной растровой графики; для последующих запросов перерисовки фреймворк Graphics View перерисует изображение из кэша. Этот подход особенно хорошо работает с QGLWidget, который хранит весь кэш как текстуры OpenGL.
Обратите внимание, что может потребоваться изменить предел кэша QPixmapCache для достижения оптимальной производительности.
Подробнее о различных режимах кэширования вы можете узнать в документации к CacheMode.
Примечание: Включение кэширования не подразумевает, что функция paint() элемента будет вызываться только в ответ на явное вызов update(). Например, при ограничении памяти Qt может решить отказаться от части информации кэша; в таких случаях функция paint() элемента будет вызвана, даже если не было вызова update() (то есть ровно так, как если бы кэширование не было включено).
Функция была добавлена в Qt 4.4.
См. также cacheMode(), CacheMode и QPixmapCache::setCacheLimit().
void QGraphicsItem::setCursor(const QCursor &cursor)
Устанавливает текущую форму курсора для элемента на cursor. Курсор мыши примет эту форму, когда будет над этим элементом. Список предопределённых объектов курсора можно найти в списке предопределённых объектов курсора.
Элемент редактора может использовать курсор в виде лупы:
item->setCursor(Qt::IBeamCursor);
Если курсор не установлен, используется курсор элемента, находящегося под ним.
См. также cursor(), hasCursor(), unsetCursor(), QWidget::cursor и QApplication::overrideCursor().
void QGraphicsItem::setData(int key, const QVariant &value)
Устанавливает пользовательские данные этого элемента для ключа key на value.
Пользовательские данные элемента полезны для хранения произвольных свойств любого элемента. Qt не использует эту функцию для хранения данных; она предоставляется исключительно для удобства пользователя.
См. также data().
void QGraphicsItem::setEnabled(bool enabled)
Если enabled равно true, элемент включён; в противном случае — отключён.
Отключенные элементы видны, но они не получают никаких событий, не могут получить фокус и не могут быть выбраны. События мыши отбрасываются; они не передаются, если элемент также невидим или не принимает события мыши (см. acceptedMouseButtons()). Отключённый элемент не может стать элементом захвата мыши, и в результате этого элемент теряет захват, если он был захватом мыши, когда он был отключён, точно так же, как он теряет фокус, если у него был фокус, когда он был отключён.
Отключённые элементы обычно рисуются с помощью серых цветов (см. QPalette::Disabled).
Если вы отключаете родительский элемент, все его дочерние элементы также будут отключены. Если вы включаете родительский элемент, все дочерние элементы будут включены, если только они не были явно отключены (то есть, если вы вызываете setEnabled(false) для дочернего элемента, он не будет снова включён, если его родитель отключён, а затем включён вновь).
Элементы включены по умолчанию.
Примечание: Если вы устанавливаете обработчик событий, вы всё ещё можете перехватывать события перед их передачей элементам; этот механизм игнорирует состояние включения элемента.
См. также isEnabled().
void QGraphicsItem::setFiltersChildEvents(bool enabled)
Если enabled равно true, этот элемент настроен на фильтрацию всех событий для всех своих дочерних элементов (то есть все события, предназначенные для любого из его дочерних элементов, вместо этого отправляются этому элементу); в противном случае, если enabled равно false, этот элемент будет обрабатывать только свои собственные события. Значение по умолчанию — false.
Функция была добавлена в Qt 4.6.
См. также filtersChildEvents().
END_OF_DOCUMENT_MARKERvoid QGraphicsItem::setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true)
Если enabled имеет значение true, флаг элемента flag включён; в противном случае — выключен.
См. также flags() и setFlags().
void QGraphicsItem::setFlags(QGraphicsItem::GraphicsItemFlags flags)
Устанавливает флаги элемента на flags. Все флаги в flags включены; все флаги, отсутствующие в flags, выключены.
Если элемент имел фокус, а flags не включает ItemIsFocusable, элемент теряет фокус в результате вызова этой функции. Аналогично, если элемент был выбран, а flags не включает ItemIsSelectable, элемент автоматически снимается с выбора.
По умолчанию никакие флаги не включены. (QGraphicsWidget включает флаг ItemSendsGeometryChanges по умолчанию, чтобы отслеживать изменения положения.)
См. также flags() и setFlag().
void QGraphicsItem::setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason)
Передает фокус ввода с клавиатуры данному элементу. Аргумент focusReason будет передан в любое событие фокуса, сгенерированное этой функцией; он используется для объяснения того, что стало причиной получения элементом фокуса.
Только включенные элементы, установившие флаг ItemIsFocusable, могут принимать фокус клавиатуры.
Если этот элемент не виден, не активен или не связан со сценой, он не получит фокус ввода немедленно. Однако он будет зарегистрирован как предпочтительный элемент фокуса для своего поддерева элементов, если он позже станет видимым.
В результате вызова этой функции, данный элемент получит событие focus in event с focusReason. Если другой элемент уже имеет фокус, этот элемент сначала получит событие focus out event, указывающее на потерю фокуса ввода.
См. также clearFocus(), hasFocus(), focusItem() и focusProxy().
void QGraphicsItem::setFocusProxy(QGraphicsItem *item)
Устанавливает прокси фокуса элемента на item.
Если у элемента есть прокси фокуса, прокси фокуса получит фокус ввода, когда элемент получит фокус ввода. Сам элемент по-прежнему будет иметь фокус (т.е., hasFocus() вернёт true), но только прокси фокуса получит ввод с клавиатуры.
Прокси фокуса может сам иметь прокси фокуса и так далее. В таком случае ввод с клавиатуры будет обрабатываться внешним прокси фокуса.
Элемент item прокси фокуса должен принадлежать той же сцене, что и данный элемент.
Эта функция была добавлена в Qt 4.6.
См. также focusProxy(), setFocus() и hasFocus().
void QGraphicsItem::setGraphicsEffect(QGraphicsEffect *effect)
Устанавливает effect в качестве эффекта элемента. Если на данном элементе уже установлен эффект, QGraphicsItem удалит существующий эффект перед установкой нового effect. Вы можете удалить существующий эффект, вызвав setGraphicsEffect(0).
Если effect установлен для другого элемента, setGraphicsEffect() удалит эффект с элемента и установит его на этот элемент.
QGraphicsItem принимает владение effect.
Примечание: Эта функция применит эффект к себе и всем своим дочерним элементам.
Эта функция была добавлена в Qt 4.6.
См. также graphicsEffect().
void QGraphicsItem::setGroup(QGraphicsItemGroup *group)
Добавляет этот элемент в группу элементов group. Если group равен 0, этот элемент удаляется из любой текущей группы и добавляется как дочерний элемент родительской группы.
См. также group() и QGraphicsScene::createItemGroup().
void QGraphicsItem::setInputMethodHints(Qt::InputMethodHints hints)
Устанавливает текущие подсказки метода ввода для этого элемента на hints.
Эта функция была добавлена в Qt 4.6.
См. также inputMethodHints() и inputMethodQuery().
void QGraphicsItem::setOpacity(qreal opacity)
Устанавливает локальную прозрачность этого элемента, значение от 0.0 (прозрачный) до 1.0 (непрозрачный). Локальная непрозрачность элемента комбинируется с непрозрачностью родительских элементов и предков в effectiveOpacity().
По умолчанию прозрачность распространяется сверху вниз, поэтому если прозрачность родителя равна 0,5, а дочернего элемента — также 0,5, эффективная прозрачность дочернего элемента будет 0,25.
Свойство opacity определяет состояние художника, переданного в функцию paint(). Если элемент кэшируется, т.е. ItemCoordinateCache или DeviceCoordinateCache, эффективное свойство будет применено к кэшу элемента при его отрисовке.
Существуют два флага элемента, которые влияют на то, как прозрачность элемента комбинируется с прозрачностью родительского элемента: ItemIgnoresParentOpacity и ItemDoesntPropagateOpacityToChildren.
Примечание: Установка прозрачности элемента в 0 не сделает элемент невидимым (согласно isVisible()), но элемент будет обрабатываться как невидимый. См. документацию setVisible() для получения дополнительной информации.
Эта функция была добавлена в Qt 4.5.
См. также opacity(), effectiveOpacity() и setVisible().
void QGraphicsItem::setPanelModality(QGraphicsItem::PanelModality panelModality)
Устанавливает модальный режим для этого элемента на panelModality.
Изменение модальности видимого элемента вступает в силу немедленно.
Эта функция была добавлена в Qt 4.6.
См. также panelModality().
void QGraphicsItem::setParentItem(QGraphicsItem *newParent)
Устанавливает родительский элемент для этого элемента на newParent. Если у этого элемента уже есть родитель, он сначала удаляется из предыдущего родителя. Если newParent равен 0, этот элемент станет верхнеуровневым элементом.
Обратите внимание, что это неявно добавляет этот графический элемент в сцену родительского элемента. Вам не нужно добавлять элемент в сцену самостоятельно.
Поведение при вызове этой функции для элемента, являющегося предком newParent, не определено.
См. также parentItem() и childItems().
void QGraphicsItem::setPos(const QPointF &pos)
Устанавливает положение элемента на pos, которое задано в координатах родителя. Для элементов без родителя pos задано в координатах сцены.
Положение элемента описывает его начало (локальная координата (0, 0)) в координатах родителя.
См. также pos(), scenePos() и Систему координат графического представления.
void QGraphicsItem::setPos(qreal x, qreal y)
Это перегруженная функция.
Эта вспомогательная функция эквивалентна вызову setPos(QPointF(x, y)).
void QGraphicsItem::setRotation(qreal angle)
Устанавливает поворот по часовой стрелке angle, в градусах, вокруг оси Z. Значение по умолчанию равно 0 (т.е., элемент не повернут). Присвоение отрицательного значения повернёт элемент против часовой стрелки. Обычно угол поворота находится в диапазоне (-360, 360), но также можно присвоить значения за пределами этого диапазона (например, поворот на 370 градусов эквивалентен повороту на 10 градусов).
Элемент поворачивается вокруг точки начала преобразований, которая по умолчанию равна (0, 0). Вы можете выбрать другую точку начала преобразований, вызвав setTransformOriginPoint().
Поворот комбинируется с масштабированием элемента scale(), преобразованием transform() и преобразованиями transformations() для отображения координатной системы элемента в родительском элементе.
Эта функция была добавлена в Qt 4.6.
См. также rotation(), setTransformOriginPoint() и Преобразования.
void QGraphicsItem::setScale(qreal factor)
Устанавливает масштабный коэффициент элемента. Значение по умолчанию масштабного коэффициента — 1.0 (т. е. элемент не масштабируется). Значение масштабного коэффициента 0.0 приведет к сжатию элемента до одной точки. Если вы зададите отрицательное значение масштабного коэффициента, элемент будет перевернут и отображён в зеркальном отражении (т. е. повернут на 180 градусов).
Масштабирование элемента выполняется относительно его точки начала преобразования, которая по умолчанию равна (0, 0). Вы можете выбрать другую точку начала преобразования, вызвав setTransformOriginPoint().
Масштабирование комбинируется с поворотом(rotation()), преобразованием(transform()) и преобразованиями(transformations()) элемента для сопоставления системы координат элемента с родительским элементом.
Эта функция была введена в Qt 4.6.
См. также scale(), setTransformOriginPoint() и Пример преобразований.
void QGraphicsItem::setSelected(bool selected)
Если selected равно true и элемент допускает выделение, этот элемент будет выделен; в противном случае он будет снят с выделения.
Если элемент находится в группе, состояние выделения всей группы переключается с помощью этой функции. Если группа выделена, все элементы в группе также будут выделены, а если группа не выделена, ни один элемент в группе не будет выделен.
Выделению могут подвергаться только видимые, активные и допускающие выделение элементы. Если selected равно true, а элемент невидим или неактивен или не допускает выделения, эта функция ничего не делает.
По умолчанию элементы не могут быть выделены. Для включения выделения установите флаг ItemIsSelectable.
Эта функция предоставлена для удобства, позволяя индивидуально переключать состояние выделения элемента. Однако более распространённым способом выбора элементов является вызов QGraphicsScene::setSelectionArea(), который вызовет эту функцию для всех видимых, активных и допускающих выделение элементов в заданной области сцены.
См. также isSelected() и QGraphicsScene::selectedItems().
void QGraphicsItem::setToolTip(const QString &toolTip)
Устанавливает подсказку элемента на toolTip. Если toolTip пустая, подсказка элемента очищается.
См. также toolTip() и QToolTip.
void QGraphicsItem::setTransform(const QTransform &matrix, bool combine = false)
Устанавливает текущую матрицу преобразования элемента на matrix.
Если combine равно true, то matrix комбинируется с текущей матрицей; в противном случае matrix заменяет текущую матрицу. По умолчанию combine равно false.
Для упрощения взаимодействия с элементами, использующими преобразованный вид, QGraphicsItem предоставляет функции mapTo… и mapFrom…, которые могут преобразовывать координаты элементов и сцены. Например, вы можете вызвать mapToScene(), чтобы преобразовать координаты элемента в координаты сцены, или mapFromScene(), чтобы преобразовать координаты сцены в координаты элемента.
Матрица преобразования комбинируется с поворотом (rotation()), масштабированием (scale()) и преобразованиями (transformations()) элемента в комбинированное преобразование, отображающее систему координат элемента в родительский элемент.
Эта функция была введена в Qt 4.3.
См. также transform(), setRotation(), setScale(), setTransformOriginPoint(), Система координат виджета графического отображения и Преобразования.
void QGraphicsItem::setTransformOriginPoint(const QPointF &origin)
Устанавливает точку origin начала преобразования в координатах элемента.
Эта функция была введена в Qt 4.6.
См. также transformOriginPoint() и Преобразования.
void QGraphicsItem::setTransformOriginPoint(qreal x, qreal y)
Это перегруженная функция.
Устанавливает точку начала преобразования в координатах элемента. Это эквивалентно вызову setTransformOriginPoint(QPointF(x, y)).
Эта функция была введена в Qt 4.6.
См. также setTransformOriginPoint() и Преобразования.
void QGraphicsItem::setTransformations(const QList<QGraphicsTransform *> &transformations)
Устанавливает список графических преобразований (QGraphicsTransform), которые в данный момент применяются к этому элементу.
Если вам нужно только повернуть или масштабировать элемент, вы должны вызвать setRotation() или setScale() вместо этого. Если вы хотите применить произвольное преобразование к элементу, вы можете вызвать setTransform().
QGraphicsTransform предназначен для применения и управления цепочкой отдельных операций преобразования к элементу. Это особенно полезно при анимациях, где каждая операция преобразования должна интерполироваться независимо или по-разному.
Преобразования комбинируются с поворотом (rotation()), масштабированием (scale()) и преобразованием (transform()) элемента для сопоставления системы координат элемента с родительским элементом.
Эта функция была введена в Qt 4.6.
См. также transformations(), scale(), setTransformOriginPoint() и Преобразования.
void QGraphicsItem::setVisible(bool visible)
Если visible равно true, элемент становится видимым. В противном случае элемент становится невидимым. Невидимые элементы не отрисовываются и не получают никаких событий. В частности, события мыши проходят сквозь невидимые элементы и доставляются любому элементу, который может быть под ними. Невидимые элементы также не могут быть выделены, не могут получить фокус и не обнаруживаются функциями расположения элементов QGraphicsScene.
Если элемент становится невидимым во время захвата мыши (т. е. во время получения событий мыши), он автоматически потеряет захват мыши, и захват не будет восстановлен, если снова сделать элемент видимым; для восстановления захвата мыши требуется новое нажатие мыши.
Аналогично, невидимый элемент не может иметь фокус, поэтому, если у элемента есть фокус, когда он становится невидимым, он потеряет фокус, и фокус не восстановится, просто сделав элемент видимым снова.
Если вы скрываете родительский элемент, все его дочерние элементы также будут скрыты. Если вы показываете родительский элемент, все дочерние элементы будут показаны, если только они не были явно скрыты (т. е. если вы вызываете setVisible(false) для дочернего элемента, он не будет показан снова, даже если его родительский элемент будет скрыт и затем снова показан).
Элементы по умолчанию видимы; вызывать setVisible() для нового элемента не нужно.
Примечание: Элемент с непрозрачностью, установленной в 0, всё ещё считается видимым, хотя он будет вести себя как невидимый элемент: события мыши пройдут сквозь него, он не будет включён в элементы, возвращаемые QGraphicsView::items(), и т. д. Однако элемент сохранит фокус.
См. также isVisible(), show(), hide() и setOpacity().
void QGraphicsItem::setX(qreal x)
Устанавливает координату x положения элемента. Эквивалентно вызову setPos(x, y()).
Эта функция была введена в Qt 4.6.
void QGraphicsItem::setY(qreal y)
Устанавливает координату y положения элемента. Эквивалентно вызову setPos(x(), y).
Эта функция была введена в Qt 4.6.
См. также y(), x() и setPos().
void QGraphicsItem::setZValue(qreal z)
Устанавливает значение Z элемента на z. Значение Z определяет порядок наложения элементов-братьев (соседних) элементов. Элемент-брат с высоким значением Z всегда будет нарисован поверх другого элемента-брата с более низким значением Z.
Если вы восстановите значение Z, порядок вставки элемента будет определять порядок наложения.
Значение Z никак не влияет на размер элемента.
Значение Z по умолчанию — 0.
См. также zValue(), Сортировка, stackBefore() и ItemStacksBehindParent.
QPainterPath QGraphicsItem::shape() const
Возвращает форму этого элемента как QPainterPath в локальных координатах. Форма используется для многих вещей, включая проверку столкновений, проверки попадания в элемент и функций QGraphicsScene::items().
Реализация по умолчанию вызывает boundingRect() для возвращения простой прямоугольной формы, но подклассы могут переопределить эту функцию, чтобы вернуть более точную форму для элементов, не являющихся прямоугольниками. Например, круглый элемент может выбрать возвращение эллиптической формы для лучшего обнаружения столкновений. Например:
QPainterPath RoundItem::shape() const
{
QPainterPath path;
path.addEllipse(boundingRect());
return path;
} Контур формы может изменяться в зависимости от ширины и стиля пера, используемого при рисовании. Если вы хотите включить этот контур в форму элемента, вы можете создать форму из обводки с помощью QPainterPathStroker.
Эта функция вызывается реализациями по умолчанию для contains() и collidesWithPath().
См. также boundingRect(), contains(), prepareGeometryChange(), и QPainterPathStroker.
void QGraphicsItem::show()
Отображает элемент (элементы отображаются по умолчанию).
Эта функция-утилита эквивалентна вызову setVisible(true).
См. также hide() и setVisible().
void QGraphicsItem::stackBefore(const QGraphicsItem *sibling)
Устанавливает этот элемент перед элементом sibling, который должен быть элементом-близнецом (то есть, два элемента должны иметь одного и того же родительского элемента или оба должны быть верхнего уровня). Элемент sibling должен иметь такое же значение Z, как и этот элемент, в противном случае вызов этой функции не будет иметь никакого эффекта.
По умолчанию все элементы-близнецы упорядочиваются по порядку добавления (то есть, первый добавленный элемент отображается перед следующим). Если значения Z двух элементов разные, то элемент с наибольшим значением Z отображается сверху. Когда значения Z одинаковые, порядок добавления определит порядок стекирования.
Эта функция была представлена в Qt 4.6.
См. также setZValue(), ItemStacksBehindParent, и Сортировка.
QGraphicsObject *QGraphicsItem::toGraphicsObject()
Возвращает графический элемент, отформатированный как QGraphicsObject, если класс фактически является графическим объектом, иначе 0.
Эта функция была представлена в Qt 4.6.
const QGraphicsObject *QGraphicsItem::toGraphicsObject() const
Возвращает графический элемент, отформатированный как QGraphicsObject, если класс фактически является графическим объектом, иначе 0.
Эта функция была представлена в Qt 4.6.
QString QGraphicsItem::toolTip() const
Возвращает подсказку элемента, или пустой QString, если подсказка не задана.
См. также setToolTip() и QToolTip.
QGraphicsItem *QGraphicsItem::topLevelItem() const
Возвращает элемент верхнего уровня этого элемента. Элемент верхнего уровня — это самый верхний родительский элемент, родитель которого равен 0. Если у элемента нет родителя, возвращается его собственный указатель (то есть, элемент верхнего уровня сам является элементом верхнего уровня).
См. также parentItem().
QGraphicsWidget *QGraphicsItem::topLevelWidget() const
Возвращает указатель на виджет верхнего уровня элемента (то есть, предок, родитель которого равен 0 или который не является виджетом), или 0, если у этого элемента нет виджета верхнего уровня. Если элемент сам является виджетом верхнего уровня, эта функция возвращает указатель на сам элемент.
Эта функция была представлена в Qt 4.4.
QTransform QGraphicsItem::transform() const
Возвращает матрицу преобразования этого элемента.
Матрица преобразования комбинируется с поворотом (rotation()), масштабированием (scale()) и преобразованиями (transformations()) элемента в совокупность преобразований для элемента.
Матрица преобразования по умолчанию — единичная матрица.
Эта функция была представлена в Qt 4.3.
См. также setTransform() и sceneTransform().
QPointF QGraphicsItem::transformOriginPoint() const
Возвращает точку начала преобразования в координатах элемента.
По умолчанию — QPointF(0,0).
Эта функция была представлена в Qt 4.6.
См. также setTransformOriginPoint() и Преобразования.
QList<QGraphicsTransform *> QGraphicsItem::transformations() const
Возвращает список графических преобразований, которые в настоящее время применяются к этому элементу.
QGraphicsTransform предназначен для применения и управления цепочкой отдельных операций преобразования над элементом. Это особенно полезно при анимации, где каждая операция преобразования должна быть интерполирована независимо или по-разному.
Преобразования комбинируются с поворотом (rotation()), масштабированием (scale()) и преобразованием (transform()) элемента для отображения системы координат элемента в родительский элемент.
Эта функция была представлена в Qt 4.6.
См. также setTransformations(), scale(), rotation(), transformOriginPoint(), и Преобразования.
[virtual] int QGraphicsItem::type() const
Возвращает тип элемента как целое число. Все стандартные классы graphicsitem связаны с уникальным значением; см. QGraphicsItem::Type. Эта информация о типе используется qgraphicsitem_cast() для различения типов.
Реализация по умолчанию (в QGraphicsItem) возвращает UserType.
Для включения использования qgraphicsitem_cast() с пользовательским элементом, переопределите эту функцию и объявите значение перечисления Type, равное типу вашего пользовательского элемента. Пользовательские элементы должны возвращать значение, большее или равное UserType (65536).
Например:
class CustomItem : public QGraphicsItem
{
public:
enum { Type = UserType + 1 };
int type() const override
{
// Enable the use of qgraphicsitem_cast with this item.
return Type;
}
...
}; См. также UserType.
void QGraphicsItem::ungrabKeyboard()
Освобождает захват клавиатуры.
Эта функция была представлена в Qt 4.4.
См. также grabKeyboard() и ungrabMouse().
void QGraphicsItem::ungrabMouse()
Освобождает захват мыши.
Эта функция была представлена в Qt 4.4.
См. также grabMouse() и ungrabKeyboard().
void QGraphicsItem::unsetCursor()
Удаляет курсор из этого элемента.
См. также hasCursor() и setCursor().
void QGraphicsItem::update(const QRectF &rect = QRectF())
Планирует перерисовку области, покрываемой rect в этом элементе. Вы можете вызвать эту функцию всякий раз, когда ваш элемент нуждается в перерисовке, например, если он меняет внешний вид или размер.
Эта функция не вызывает немедленную перерисовку; вместо этого она планирует запрос на перерисовку, который обрабатывается QGraphicsView после того, как управление достигнет цикла событий. Элемент будет перерисован только в том случае, если он виден в любом связанном представлении.
В качестве побочного эффекта перерисовки элемента, другие элементы, которые перекрывают область rect, также могут быть перерисованы.
Если элемент невидим (т.е., isVisible() возвращает false), эта функция ничего не делает.
См. также paint() и boundingRect().
void QGraphicsItem::update(qreal x, qreal y, qreal width, qreal height)
Это перегруженная функция.
Эта функция-утилита эквивалентна вызову update(QRectF(x, y, width, height)).
[protected] void QGraphicsItem::updateMicroFocus()
Обновляет микрофокус элемента.
Эта функция была представлена в Qt 4.7.
См. также QInputMethod.
[virtual protected] void QGraphicsItem::wheelEvent(QGraphicsSceneWheelEvent *event)
Этот обработчик событий для события event может быть переопределён для получения событий прокрутки для этого элемента. Если вы переопределите эту функцию, event будет принят по умолчанию.
Если вы игнорируете событие (например, вызвав QEvent::ignore()), оно будет распространено на любой элемент под этим элементом. Если ни один из элементов не примет событие, оно будет проигнорировано сценой и распространено на представление (например, на вертикальную полосу прокрутки представления).
Реализация по умолчанию игнорирует событие.
См. также sceneEvent().
END_OF_DOCUMENT_MARKERQGraphicsWidget *QGraphicsItem::window() const
Возвращает окно элемента, или 0, если у этого элемента нет окна. Если элемент является окном, он вернет себя. В противном случае он вернет ближайшего предка, являющегося окном.
Эта функция была добавлена в Qt 4.4.
См. также QGraphicsWidget::isWindow().
qreal QGraphicsItem::x() const
Эта функция-помощник эквивалентна вызову pos().x().
qreal QGraphicsItem::y() const
Эта функция-помощник эквивалентна вызову pos().y().
qreal QGraphicsItem::zValue() const
Возвращает значение Z элемента. Значение Z влияет на порядок следования элементов-собратьев (соседних элементов).
Значение Z по умолчанию равно 0.
См. также setZValue(), Сортировка, stackBefore() и ItemStacksBehindParent.
Связанные нечленные функции
T qgraphicsitem_cast(QGraphicsItem *item)
Возвращает заданный item, приведённый к типу T, если item имеет тип T; в противном случае возвращается 0.
Примечание: Чтобы эта функция работала правильно с пользовательскими элементами, переопределите функцию type() для каждого пользовательского подкласса QGraphicsItem.
Эта функция была добавлена в Qt 4.2.
См. также QGraphicsItem::type() и QGraphicsItem::UserType.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qgraphicsitem.html