2017-09-10 77 views
0

我必須呈現由特定窗口擁有的QQuickItem,到另一個。基本上由window1擁有的MyQQuickItem將在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-一,不同的窗口#comment79199704_46117093 – GrecKo

回答

0

您可以使用grabToImage()並在第二個窗口中顯示抓取的圖像。
這可能不是理想的,性能明智的。你可以在這個網站上找到一些關於如何做到這一點的問題。特別有趣的可能是this.

我不知道你的情況,但它可能會更好,讓同一個組件的兩個實例顯示相同的數據模型 - 可能有一個禁用的輸入。