QGraphicsPixmapItem 类

QGraphicsPixmapItem 类提供了一个你可以添加到 QGraphicsScene 中的位图项。更多...

头文件 #include <QGraphicsPixmapItem>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QGraphicsItem

公共类型

枚举ShapeMode { MaskShape, BoundingRectShape, HeuristicMaskShape }
枚举匿名 { Type }

公共函数

QGraphicsPixmapItem(QGraphicsItem *parent = nullptr)
QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr)
虚拟~QGraphicsPixmapItem()
QPointFoffset() const
QPixmappixmap() const
voidsetOffset(const QPointF &offset)
voidsetOffset(qreal x, qreal y)
voidsetPixmap(const QPixmap &pixmap)
voidsetShapeMode(QGraphicsPixmapItem::ShapeMode mode)
voidsetTransformationMode(Qt::TransformationMode mode)
QGraphicsPixmapItem::ShapeModeshapeMode() const
Qt::TransformationModetransformationMode() const

重实现的公共函数

虚拟 QRectFboundingRect() const override
虚拟 boolcontains(const QPointF &point) const override
虚拟 boolisObscuredBy(const QGraphicsItem *item) const override
虚拟 QPainterPathopaqueArea() const override
虚拟 voidpaint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
虚拟 QPainterPathshape() const override
虚拟 inttype() const override

详细描述

若要设置项目的Pixmap,将QPixmap传递给QGraphicsPixmapItem构造函数,或调用setPixmap()函数。pixmap()函数返回当前Pixmap。

QGraphicsPixmapItem使用Pixmap的任意alpha掩码来提供boundingRect()、shape()和contains()的合理实现。

Pixmap将绘制在项目的(0, 0)坐标上,这是由.offset()返回的。你可以通过调用setOffset()来更改绘制偏移量。

你可以通过调用setTransformationMode()来设置Pixmap的转换模式。默认情况下,使用Qt::FastTransformation,它提供快速的非平滑缩放。Qt::SmoothTransformation允许在画家上启用QPainter::SmoothPixmapTransform,其质量取决于平台和视口。结果通常不如下直接调用QPixmap::scale()。通过调用transformationMode()来获取项目的当前转换模式。

另请参阅QGraphicsPathItemQGraphicsRectItemQGraphicsEllipseItemQGraphicsTextItemQGraphicsPolygonItemQGraphicsLineItem图形视图框架

成员类型文档

枚举QGraphicsPixmapItem::ShapeMode

此枚举描述了QGraphicsPixmapItem如何计算其形状和不透明区域。

默认值是MaskShape。

常数描述
QGraphicsPixmapItem::MaskShape0形状通过调用QPixmap::mask()确定。此形状仅包括Pixmap的不透明像素。然而,由于形状更复杂,因此它的速度可能比其他模式慢,且占用更多内存。
QGraphicsPixmapItem::BoundingRectShape1通过追踪Pixmap的轮廓来确定形状。这是最快形状模式,但它没有考虑Pixmap上的任何透明区域。
QGraphicsPixmapItem::HeuristicMaskShape2通过调用QPixmap::createHeuristicMask()来确定形状。性能和内存消耗类似于MaskShape。

枚举QGraphicsPixmapItem::匿名

虚函数type()返回的值。

常数描述
QGraphicsPixmapItem::Type7图形Pixmap项

成员函数文档

[显式] QGraphicsPixmapItem::QGraphicsPixmapItem(QGraphicsItem *parent = nullptr)

构造一个QGraphicsPixmapItem。将parent传递给QGraphicsItem构造函数。

另请参阅QGraphicsScene::addItem

[显式] QGraphicsPixmapItem::QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr)

使用pixmap作为默认Pixmap来构造一个QGraphicsPixmapItem。将parent传递给QGraphicsItem构造函数。

另请参阅QGraphicsScene::addItem

[虚拟 noexcept] QGraphicsPixmapItem::~QGraphicsPixmapItem()

销毁QGraphicsPixmapItem。

[覆盖虚函数] QRectF QGraphicsPixmapItem::boundingRect() const

重新实现: QGraphicsItem::boundingRect() const.

[覆盖虚函数] bool QGraphicsPixmapItem::contains(const QPointF &point) const

重新实现: QGraphicsItem::contains(const QPointF &point) const.

[覆盖虚函数] bool QGraphicsPixmapItem::isObscuredBy(const QGraphicsItem *item) const

重新实现: QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.

QPointF QGraphicsPixmapItem::offset() const

返回 pixmap 项的 offset,它定义了 pixmap 的左上角点,以局部坐标为单位。

另请参阅 setOffset().

[覆盖虚函数] QPainterPath QGraphicsPixmapItem::opaqueArea() const

重新实现: QGraphicsItem::opaqueArea() const.

[覆盖虚函数] void QGraphicsPixmapItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)

重新实现: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

QPixmap QGraphicsPixmapItem::pixmap() const

返回项的 pixmap,如果没有设置 pixmap,则返回无效的 QPixmap

另请参阅 setPixmap().

void QGraphicsPixmapItem::setOffset(const QPointF &offset)

将 pixmap 项的偏移量设置为 offsetQGraphicsPixmapItem 将使用 offset 来绘制 pixmap 的左上角。

另请参阅 offset().

void QGraphicsPixmapItem::setOffset(qreal x, qreal y)

此便利函数等价于调用 setOffset(QPointF(x, y))。

void QGraphicsPixmapItem::setPixmap(const QPixmap &pixmap)

将项的 pixmap 设置为 pixmap

另请参阅 pixmap().

void QGraphicsPixmapItem::setShapeMode(QGraphicsPixmapItem::ShapeMode mode)

设置项的形状模式为 mode。形状模式描述了 QGraphicsPixmapItem 如何计算其形状。默认模式是 MaskShape

另请参阅shapeMode() 和 ShapeMode

void QGraphicsPixmapItem::setTransformationMode(Qt::TransformationMode mode)

将位图项的变换模式设置为 mode,并切换更新项。默认模式是 Qt::FastTransformation,它提供快速变换且无平滑。

Qt::SmoothTransformation 可在 painter 上启用 QPainter::SmoothPixmapTransform,其质量取决于平台和视口。结果通常不如直接调用 QPixmap::scale()。

另请参阅transformationMode

[override virtual] QPainterPath QGraphicsPixmapItem::shape() const

重新实现了:QGraphicsItem::shape() const

QGraphicsPixmapItem::ShapeMode QGraphicsPixmapItem::shapeMode() const

返回项的形状模式。形状模式描述了 QGraphicsPixmapItem 如何计算其形状。默认模式是 MaskShape

另请参阅setShapeMode() 和 ShapeMode

Qt::TransformationMode QGraphicsPixmapItem::transformationMode() const

返回位图的变换模式。默认模式是 Qt::FastTransformation,它提供快速变换且无平滑。

另请参阅setTransformationMode

[override virtual] int QGraphicsPixmapItem::type() const

重新实现了:QGraphicsItem::type() const

© 2024 Qt 公司 Ltd. 本文档的贡献者是各自所有者的版权。本文档的提供受自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款约束。Qt 及其相关标志是芬兰的 Qt 公司及其在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。