首页 > 解决方案 > 从 C++ 代码绘制画布

问题描述

我的 qml 文件中有一个画布(http://doc.qt.io/qt-5/qml-qtquick-canvas.html)。
我在 c++ 中创建了一个“Backend”类并将其添加到 main.cpp 中qmlRegisterType<Backend>("de.xxx.backend", 1, 0, "Backend");,然后我将这个类导入到 main.qml 中import de.xxx.backend 1.0并添加了它的一个实例。

现在我想用我的 c++ 代码在这个画布上绘图。我想在我的类后端中有一个名为“draw()”的函数,在这个函数中我可以使用 drawRect() 或类似的函数。这可能吗?我怎样才能做到这一点?

我在这里先向您的帮助表示感谢!

标签: c++qtqml

解决方案


从 C++借鉴 QMLCanvas是我一段时间以来听到的最糟糕的想法。

对于初学者 - 它没有给你带来任何好处。

其次 - 画布确实没有公共的 C++ API,使用私有的 API 是一个非常糟糕的主意。

最后——如果你非常喜欢从 C++ 中绘图,只需实现一个你使用 C++ APIQQuickPaintedItem绘制的 QML 元素。QPainter


推荐阅读