QML类型用QPainter绘制

时间:2014-03-31 05:48:18

标签: c++ qml qt5

在QML文档中,我找到了一个自定义类型(用C ++定义)的例子,用QPainter绘制它:

部首:

#include <QtQuick/QQuickPaintedItem> 

class PieChart : public QQuickPaintedItem    
{
...

public:
    void paint(QPainter *painter);

...
};

来源:

void PieChart::paint(QPainter *painter)
{
    QPen pen(m_color, 2);
    painter->setPen(pen);
    painter->setRenderHints(QPainter::Antialiasing, true);
    painter->drawPie(boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16);
}

如何使用QPainter异步绘制一个类型(例如一条线)? 谢谢!

1 个答案:

答案 0 :(得分:0)

您有多种方法可以异步绘制:

1)在某些时候将内容绘制到QImage(甚至可能在单独的帖子中),在QQuickPaintedItem::paint()中,只需绘制该图像。

2)使用QtQuick Canvas。请注意,这是用JavaScript绘制的,而不是用C ++绘制的,但实际上它是QPainter命令。 Canvas支持各种render strategies,其中包括在专用线程或渲染线程中进行绘制