QGraphicsPixmapItem 类
QGraphicsPixmapItem 类提供了一个你可以添加到 QGraphicsScene 中的位图项。更多...
头文件 | #include <QGraphicsPixmapItem> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QGraphicsItem |
公共类型
公共函数
QGraphicsPixmapItem(QGraphicsItem *parent = nullptr) | |
QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr) | |
虚拟 | ~QGraphicsPixmapItem() |
QPointF | offset() const |
QPixmap | pixmap() const |
void | setOffset(const QPointF &offset) |
void | setOffset(qreal x, qreal y) |
void | setPixmap(const QPixmap &pixmap) |
void | setShapeMode(QGraphicsPixmapItem::ShapeMode mode) |
void | setTransformationMode(Qt::TransformationMode mode) |
QGraphicsPixmapItem::ShapeMode | shapeMode() const |
Qt::TransformationMode | transformationMode() const |
重实现的公共函数
虚拟 QRectF | boundingRect() const override |
虚拟 bool | contains(const QPointF &point) const override |
虚拟 bool | isObscuredBy(const QGraphicsItem *item) const override |
虚拟 QPainterPath | opaqueArea() const override |
虚拟 void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override |
虚拟 QPainterPath | shape() const override |
虚拟 int | type() 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()来获取项目的当前转换模式。
另请参阅QGraphicsPathItem、QGraphicsRectItem、QGraphicsEllipseItem、QGraphicsTextItem、QGraphicsPolygonItem、QGraphicsLineItem和图形视图框架。
成员类型文档
枚举QGraphicsPixmapItem::ShapeMode
此枚举描述了QGraphicsPixmapItem如何计算其形状和不透明区域。
默认值是MaskShape。
常数 | 值 | 描述 |
---|---|---|
QGraphicsPixmapItem::MaskShape | 0 | 形状通过调用QPixmap::mask()确定。此形状仅包括Pixmap的不透明像素。然而,由于形状更复杂,因此它的速度可能比其他模式慢,且占用更多内存。 |
QGraphicsPixmapItem::BoundingRectShape | 1 | 通过追踪Pixmap的轮廓来确定形状。这是最快形状模式,但它没有考虑Pixmap上的任何透明区域。 |
QGraphicsPixmapItem::HeuristicMaskShape | 2 | 通过调用QPixmap::createHeuristicMask()来确定形状。性能和内存消耗类似于MaskShape。 |
枚举QGraphicsPixmapItem::匿名
虚函数type()返回的值。
常数 | 值 | 描述 |
---|---|---|
QGraphicsPixmapItem::Type | 7 | 图形Pixmap项 |
成员函数文档
[显式]
QGraphicsPixmapItem::QGraphicsPixmapItem(QGraphicsItem *parent = nullptr)
构造一个QGraphicsPixmapItem。将parent传递给QGraphicsItem构造函数。
[显式]
QGraphicsPixmapItem::QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr)
使用pixmap作为默认Pixmap来构造一个QGraphicsPixmapItem。将parent传递给QGraphicsItem构造函数。
[虚拟 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 项的偏移量设置为 offset。 QGraphicsPixmapItem 将使用 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。
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,它提供快速变换且无平滑。
[override virtual]
int QGraphicsPixmapItem::type() const
重新实现了:QGraphicsItem::type() const。
© 2024 Qt 公司 Ltd. 本文档的贡献者是各自所有者的版权。本文档的提供受自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款约束。Qt 及其相关标志是芬兰的 Qt 公司及其在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。