我正在使用以下代码进行拖动。但它实际上移动了原始元素。相反,我需要拖动一个复制的对象,这将被丢弃。
drag.active: dragarea.drag.active
Mousearea{
Id : dragarea
Anchors.fill : parent
Drag.target: parent
}
答案 0 :(得分:1)
阅读Dynamic QML Object Creation from JavaScript。它将描述两个选项:
Creating a Component Dynamically
要动态加载QML文件中定义的组件,请调用Qt对象中的Qt.createComponent()函数。此函数将QML文件的URL作为其唯一参数,并从此URL创建一个Component对象。
拥有Component后,可以调用其createObject()方法来创建组件的实例。
Creating an Object from a String of QML
如果直到运行时才定义QML,则可以使用Qt.createQmlObject()函数从QML字符串创建QML对象
该文档还包含有关如何在完成对象后删除对象的信息。
您还可以使用Loader
:
Loader用于动态加载QML组件。
Loader可以加载QML文件(使用source属性)或Component对象(使用sourceComponent属性)。在需要之前延迟组件的创建非常有用:例如,应该按需创建组件,或者出于性能原因不应该不必要地创建组件。
同样,那里也记录了动态加载项目的破坏。