2015-10-16 36 views
1

我正在使用下面的代碼來拖動。但它實際上移動了原始元素。相反,我需要一個複製的對象被拖動,這將在下降時被銷燬。 drag.active: dragarea.drag.active Mousearea{ Id : dragarea Anchors.fill : parent Drag.target: parent }如何在qml中拖動時複製元素的實例?

回答

1

閱讀Dynamic QML Object Creation from JavaScript。它將描述兩個選項:

Creating a Component Dynamically

動態地加載在一個QML文件中定義的組件,調用Qt.createComponent()函數在Qt的對象。該函數將QML文件的URL作爲唯一參數,並從該URL創建一個Component對象。

一旦你有一個組件,你可以調用它的createObject()方法來創建組件的一個實例。

Creating an Object from a String of QML

如果QML沒有,直到運行時定義,您可以創建使用Qt.createQmlObject一個QML的字符串QML對象()函數

該文檔還有關於在完成對象時如何刪除對象的信息。

你也可以使用一個Loader

裝載機是用來動態加載QML組件。

加載器可以加載QML文件(使用source屬性)或Component對象(使用sourceComponent屬性)。在需要時延遲創建組件是很有用的:例如,當按需創建組件時,或者出於性能原因不應創建組件時不必要地創建組件。

同樣,動態加載物品的銷燬也記錄在那裏。