C

PaintedImageDelegate 类

class Qul::PaintedImageDelegate

表示绘制项对象的基类。 更多...

头文件 #include <qul/painteditemdelegate.h>
Qt Quick Ultralite 1.9
继承 Qul::Object

公共函数

virtual PlatformInterface::RectboundingRect(PlatformInterface::Size size) const = 0
virtual voidpaint(PlatformInterface::DrawingDevice *device, const PlatformInterface::Rect &clip, const PlatformInterface::Transform &transform, PlatformInterface::Size size, float opacity) const = 0
voidupdate() const
voidupdate(int x, int y, int width, int height) const

详细描述

可以由 PaintedImageDelegate 类派生自定义绘制项对象。派生类必须实现 paint() 纯虚方法,使用平台上下文或直接帧缓冲区像素操作进行绘图。

class CustomPaintedItemDelegate : public Qul::PaintedItemDelegate
{
public:
    Qul::Property<int> scale;
    Qul::Property<Qul::Private::Matrix4x4> transform;

    Qul::PlatformInterface::Rect boundingRect(Qul::PlatformInterface::Size size) const override;

    void paint(Qul::PlatformInterface::DrawingDevice *device,
               const Qul::PlatformInterface::Rect &clip,
               const Qul::PlatformInterface::Transform &transform,
               Qul::PlatformInterface::Size size,
               float opacity) const override;

    void paintCircle(Qul::PlatformInterface::DrawingDevice *device,
                     const Qul::PlatformInterface::Rect &clip,
                     Qul::PlatformInterface::Point center,
                     int radius,
                     Qul::PlatformInterface::Rgba32 color) const;
};

在较早的示例中,CustomPaintedItemDelegate 类从 PaintedImageDelegate 继承。其 paint 方法的实现使用从 Qul::PlatformInterface::DrawingDevice *device 参数获得的平台上下文或帧缓冲区地址。

QPainter *painter = static_cast<QPainter *>(device->platformContext());

另请参阅PaintedItem.

成员函数文档

[纯虚] PlatformInterface::Rect PaintedImageDelegate::boundingRect(PlatformInterface::Size size) const

返回用于绘制方法的边界矩形。

它返回一个具有由 size 定义的宽度和高度的矩形对象。

另请参阅paint.

[纯虚] void PaintedImageDelegate::paint(PlatformInterface::DrawingDevice *device, const PlatformInterface::Rect &clip, const PlatformInterface::Transform &transform, PlatformInterface::Size size, float opacity) const

更新绘制的项。

每当应用程序触发更新事件时都会调用此方法。

设备参数包括用于基于软件渲染的framebuffer地址、bytesPerPixel和bytesPerLine。如果可用平台上下文,可以获取它以访问特定于平台的硬件功能进行渲染。

如果绘制的项位于另一个项内部或在部分更新时,混合可以被限制在由剪切定义的区域。

可以使用大小来获取与绘制项大小相等的边界矩形。

此方法也可以将Qml应用程序中定义的变换应用于项。

绘制项的透明度信息由不透明度参数给出。

void PaintedItemDelegate::update() const

更新绘制的项。

每次绘制的项需要更新时,应用程序都会调用此方法。它遍历与绘制项关联的节点并触发脏节点的重绘。

另请参阅paint.

void PaintedItemDelegate::update(int x, int y, int width, int height) const

使用指定的边界区域更新绘制项。

此方法仅在指定区域中触发绘制项的重绘。该区域由项目的xy属性定义。

另请参阅paint.

适用于某些Qt许可证。
了解更多。