QML类型绘制与QPainter



在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)在某个点(甚至可能在单独的线程中)将您的内容绘制到QImage中,并在QQuickPaintedItem::paint()中简单地绘制该图像。

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

相关内容

  • 没有找到相关文章

最新更新