我有一个QQuickItem
派生类,如下所示
class MyQQuickItem : public QQuickItem
{
Q_OBJECT
public:
MyQQuickItem(QQuickItem *parent = 0);
~ MyQQuickItem();
QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *);
};
我也有自己的TextureNode
课程。
我在QML方面注册了MyQQuickItem
&嵌入在main.qml
中,如下所示。
MyQQuickItem {
id: my_quick_item
objectName: "MyQQuickItemObject"
visible: false
width: 500
height: 500
}
在某个信号的触发器上,我已经连接到MyQQuickItem
中的一个广告位,我呼叫this->update()
。这当然会触发updatePaintNode
&我可以使用我想要的新内容重新绘制MyQQuickItem
。
是否可以在updatePaintNode
上触发QQuickItem
而不在qml文件中声明它?
我想要在C ++级别动态创建MyQQuickItem
&在main.qml
中没有定义或声明它我怎么能这样做?
核心问题:如何创建一个纯粹在C ++级别的QQuickItem,可以通过调用update来更新新内容,以便触发updatePaintNode? strong>
更新
我可以通过以下方式创建QQuickItem
。
QQuickView * view = new QQuickView;
view->setSource(QUrl(QStringLiteral("qrc:/MyQQuickItem.qml")));
QQuickItem * myquickitem_object = view->rootObject();
但问题是,当我致电updatePaintNode
时,我无法触发this->update
。 我应该怎样做才能让QQuickItem
更新自己?