2017-09-10 7 views
0

특정 창에서 소유 한 QQuickItem을 다른 창으로 렌더링해야합니다. 기본적으로 MyQQuickItem은 window1이 소유하며 window2에 렌더링됩니다. 이 스위치는 특정 기능으로 인해 내 앱에서 반복적으로 발생해야합니다.부모 계층을 변경하지 않고 두 번째 창에서 QQuickItem을 렌더링하십시오.

목표를 달성하기 위해 다음을 수행합니다. & 코드는 기본적으로 매우 양호한으로 작동합니다.

코드 :

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로 부모 항목을 설정하는 것 사이에 저글링을 몇 번 던져서 다시 뒤집기를 요구합니다. &.

질문 :
는 2 개 창 사이 MyQQuickItem를 공유 할 수있는 다른 방법 있습니까? 또는 양쪽 창에 MyQQuickItem 표시를 가능하게 할 수 있습니까?을 변경하지 않고도 을 사용할 필요가 없습니까?

+0

나는 이것이 가능하지 않다고 생각합니다. 어쩌면 저레벨 윈도우 또는 OpenGL 클래스를 사용하여 재생할 수도 있지만 qml/quick은 사용하지 않습니다. 위젯에 배치하고 위젯 부모를 변경할 수도 있지만 – Felix

+0

https://stackoverflow.com/questions/46117093/how-create-a-separate-copy-of-a-qquickitem-render-it-on- a-different-window # comment79199704_46117093 – GrecKo

답변

0

grabToImage()을 사용하고 두 번째 창에 그랩 이미지를 표시 할 수 있습니다.
성능면에서는 이상적 일 수 있습니다. 이 사이트에서이 작업을 수행하는 방법에 대한 몇 가지 질문을 찾을 수 있습니다. 특히 흥미로운 것은 this.

당신의 경우는 모르겠지만 동일한 컴포넌트의 두 인스턴스가 동일한 데이터 모델을 표시하도록하는 것이 좋습니다.