如何在qml中拖动时复制元素实例?

时间:2015-10-16 06:34:31

标签: qt qml qtquick2

我正在使用以下代码进行拖动。但它实际上移动了原始元素。相反,我需要拖动一个复制的对象,这将被丢弃。   drag.active: dragarea.drag.active Mousearea{ Id : dragarea Anchors.fill : parent Drag.target: parent }

1 个答案:

答案 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属性)。在需要之前延迟组件的创建非常有用:例如,应该按需创建组件,或者出于性能原因不应该不必要地创建组件。

同样,那里也记录了动态加载项目的破坏。