у меня есть 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
обновить себя?
Задача ещё не решена.
Других решений пока нет …