在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异步绘制一个类型(例如一条线)? 谢谢!
答案 0 :(得分:0)
您有多种方法可以异步绘制:
1)在某些时候将内容绘制到QImage
(甚至可能在单独的帖子中),在QQuickPaintedItem::paint()
中,只需绘制该图像。
2)使用QtQuick Canvas。请注意,这是用JavaScript绘制的,而不是用C ++绘制的,但实际上它是QPainter命令。 Canvas支持各种render strategies,其中包括在专用线程或渲染线程中进行绘制