从C ++代码绘制画布

时间:2018-06-26 19:06:49

标签: c++ qt qml

我的qml文件中有一个画布(http://doc.qt.io/qt-5/qml-qtquick-canvas.html)。
我在c ++中创建了一个“后端”类,并使用>>> [t.p_name for t in my_table.select().where(my_table.p_type=="Solar")] ['Solar, photovoltaic'] 将其添加到main.cpp中,然后使用qmlRegisterType<Backend>("de.xxx.backend", 1, 0, "Backend");将其添加到了main.qml中,并添加了它的实例。

现在,我想从我的C ++代码中绘制这张画布。我希望在类Backend中使用名称为“ draw()”的函数,并且在此函数中,我可以使用诸如drawRect()或类似函数。这可能吗?我该怎么办?

感谢您的提前帮助!

1 个答案:

答案 0 :(得分:3)

使用C ++的QML Canvas是我一段时间以来最糟糕的想法。

对于初学者-它一无所获。

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

最后-如果您想从C ++进行大量绘图,只需实现QQuickPaintedItem,这就是您使用C ++ QPainter API绘制的QML元素。