Визуализация QQuickItem во втором окне без изменения его родительской иерархии

Я должен сделать QQuickItem принадлежит одному окну, в другое. В принципе MyQQuickItem принадлежащий window1 для визуализации в window2. Этот переключатель должен происходить в моем приложении несколько раз из-за определенной функциональности.

Я делаю следующее, чтобы достичь цели, и код в основном работает нормально.

Код:

MyQQuickItem * myQuickItem = qmlEngine->rootObjects()[0]->findChild<QQuickItem*>("myquickitemobject");
myQuickItem->setParentItem(window1->contentItem());

// do the required on window2

// then set window1 as parent back again
myQuickItem->setParentItem(window2->contentItem());

Проблема:
Выше техника функционально работает отлично. Но это требует от меня несколько раз переключать флип-флоп между установкой родительского элемента из окна 1 в окно 2 и обратно.

Вопрос:
Есть ли другой способ поделиться MyQQuickItem между 2 окнами? Или возможно отображение MyQQuickItem на обоих окнах поочередно без необходимости изменения родительской иерархии?

1 ответ

Вы могли бы использовать grabToImage() и отобразить захваченное изображение в вашем втором окне.
Это не может быть идеальным, с точки зрения производительности. Вы можете найти несколько вопросов о том, как это сделать, на этом сайте. Особенно интересно это может быть .

Я не знаю вашего случая, но может быть лучше, чтобы два экземпляра одного и того же компонента отображали одну и ту же модель данных - возможно, с отключенным вводом для одного.

Другие вопросы по тегам