Визуализация 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()
и отобразить захваченное изображение в вашем втором окне.
Это не может быть идеальным, с точки зрения производительности. Вы можете найти несколько вопросов о том, как это сделать, на этом сайте. Особенно интересно это может быть .
Я не знаю вашего случая, но может быть лучше, чтобы два экземпляра одного и того же компонента отображали одну и ту же модель данных - возможно, с отключенным вводом для одного.