gpt4 book ai didi

c++ - 使用 QPainter 绘制的 QML 类型

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:00 27 4
gpt4 key购买 nike

在 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 支持各种 render strategies ,除其他外在专用线程或渲染线程中进行绘图

关于c++ - 使用 QPainter 绘制的 QML 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22754416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com