图形视图(13):【类】QGraphicsPixmapItem[官翻]

QGraphicsPixmapItem 类

QGraphicsPixmapItem类提供可添加到QGraphicsScene的像素图项目。

Header:#include < QGraphicsPixmapItem >
qmake:QT += widgets
Inherits:QGraphicsItem
Inherited By:
Since:Qt 4.2

详述

要设置项目的pixmap,可以将QPixmap传递给QGraphicsPixmapItem的构造函数,或者调用setPixmap()函数。函数的作用是:返回当前的像素图。

QGraphicsPixmapItem使用pixmap的可选alpha掩码来提供boundingRect()、shape()和contains()的合理实现。

img

pixmap是在项目的(0,0)坐标处绘制的,由offset()返回。您可以通过调用setOffset()来更改绘图偏移量。

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

参见QGraphicsPathItem, qgraphicsrectem, QGraphicsEllipseItem, QGraphicsTextItem, QGraphicsPolygonItem, QGraphicsLineItem,和图形视图框架。

公共类型

enum ShapeMode

该枚举描述了QGraphicsPixmapItem如何计算其形状和不透明区域。默认值为MaskShape。

ConstantValueDescription
MaskShape0形状是通过调用QPixmap::mask()来确定的。此形状仅包含像素图的不透明像素。然而,由于形状更复杂,它可能比其他模式慢,并使用更多的内存。
BoundingRectShape1形状是通过追踪像素图的轮廓来确定的。这是最快的形状模式,但它不考虑像素图上的任何透明区域。
HeuristicMaskShape2形状是通过调用QPixmap::createHeuristicMask()确定的。性能和内存消耗与MaskShape相似。

enum anonymous

由virtual type()函数返回的值。

ConstantValueDescription
Type7图形像素图项

公共函数

构造析构

  1. QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr)
  2. QGraphicsPixmapItem(QGraphicsItem *parent = nullptr)
  3. virtual ~QGraphicsPixmapItem()

偏移

  1. QPointF offset() const
  2. void setOffset(const QPointF &offset)
  3. void setOffset(qreal x, qreal y)

Pixmap

  1. QPixmap pixmap() const
  2. void setPixmap(const QPixmap &pixmap)

转换模式

  1. Qt::TransformationMode transformationMode() const
  2. void setTransformationMode(Qt::TransformationMode mode)

图形模式

  1. QGraphicsPixmapItem::ShapeMode shapeMode() const
  2. void setShapeMode(QGraphicsPixmapItem::ShapeMode mode)

重写的公共函数

  1. virtual QRectF boundingRect() const override
  2. virtual bool contains(const QPointF &point) const override
  3. virtual bool isObscuredBy(const QGraphicsItem *item) const override
  4. virtual QPainterPath opaqueArea() const override
  5. virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
  6. virtual QPainterPath shape() const override
  7. virtual int type() const override
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值