C
PaintedImageDelegate 类
class Qul::PaintedImageDelegate表示绘制项对象的基类。 更多...
头文件 | #include <qul/painteditemdelegate.h> |
自 | Qt Quick Ultralite 1.9 |
继承 | Qul::Object |
公共函数
virtual PlatformInterface::Rect | boundingRect(PlatformInterface::Size size) const = 0 |
virtual void | paint(PlatformInterface::DrawingDevice *device, const PlatformInterface::Rect &clip, const PlatformInterface::Transform &transform, PlatformInterface::Size size, float opacity) const = 0 |
void | update() const |
void | update(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
使用指定的边界区域更新绘制项。
此方法仅在指定区域中触发绘制项的重绘。该区域由项目的x、y、宽和高属性定义。
另请参阅paint.
适用于某些Qt许可证。
了解更多。