qt — Как обновить QQuickItem, созданный только на уровне C ++

у меня есть QQuickItem производный класс, как показано ниже

class MyQQuickItem : public QQuickItem
{
Q_OBJECT
public:
MyQQuickItem(QQuickItem *parent = 0);
~ MyQQuickItem();

QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *);
};

У меня есть своя TextureNode класс также.

я имею MyQQuickItem зарегистрирован на стороне QML & встроенный в main.qml как ниже.

MyQQuickItem {
id: my_quick_item
objectName: "MyQQuickItemObject"visible: false
width: 500
height: 500
}

При срабатывании определенного сигнала, который я подключил к слоту в MyQQuickItem, Я звоню this->update(), Это конечно вызывает updatePaintNode & Я могу перекрасить свой MyQQuickItem с новым контентом я хочу.

Является ли это возможным для запуска updatePaintNode на QQuickItem не объявив это вообще в файле qml?

я хочу динамически создать мой MyQQuickItem на уровне C ++ & не определены или не объявлены вообще main.qml Как я могу это сделать?

Основной вопрос: Как я могу создать QQuickItem исключительно на уровне C ++, который можно обновлять новым содержимым, вызывая update для него, так что updatePaintNode запускается?

Обновить:
Я могу создать QQuickItem следующим образом.

QQuickView * view = new QQuickView;
view->setSource(QUrl(QStringLiteral("qrc:/MyQQuickItem.qml")));
QQuickItem * myquickitem_object = view->rootObject();

Но проблема в том, что я не могу получить updatePaintNode стрелять, когда я звоню this->update, Что я должен сделать, чтобы получить мой QQuickItem обновить себя?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]