QML类型说明-Drag
来源:互联网 发布:php五种设计模式 编辑:程序博客网 时间:2024/06/06 21:07
Drag
ImportStatement: import QtQuick 2.2
AttachedProperties
active :bool
dragType :enumeration
hotSpot :QPointF
keys :stringlist
mimeData :stringlist
proposedAction: enumeration
source :Object
supportedActions: flags
target :Object
AttachedSignals
dragFinished(DropActionaction)
dragStarted()
AttachedMethods
void cancel()
enumerationdrop()
voidstart(flags supportedActions)
voidstartDrag(flags supportedActions)
DetailedDescription
在任何组件上使用Drag的附加属性能创建一个拖动源和在场景中触发放置事件。
当组件实例的拖被激活,则在它所在的位置将生成拖事件,该事件将发送到DropArea。DropArea是和组件实例的新位置交叉的所有DropArea。同时,其他实现了拖放处理的组件,也能接收这些事件。
下面的代码片断展示了如何使用鼠标来拖动组件实例。拖动不局限于鼠标,任何能移动组件实例的动作都能触发拖时间。它包含但不限于触摸事件,动画和绑定。
importQtQuick 2.0
Item {
width: 200; height: 200
DropArea {
x: 75; y: 75
width: 50; height: 50
Rectangle {
anchors.fill: parent
color: "green"
visible: parent.containsDrag
}
}
Rectangle {
x: 10; y: 10
width: 20; height: 20
color: "red"
Drag.active: dragArea.drag.active
Drag.hotSpot.x: 10
Drag.hotSpot.y: 10
MouseArea {
id: dragArea
anchors.fill: parent
drag.target: parent
}
}
}
一个拖动能通过调用Drag.cancel()或设置Drag.active为假来中止。它也能被调用Drag.drop()产生的放置事件中止。如果放置事件被接受,Drag.drop()返回放置事件接受者的放置行为选择,否则返回Qt.IgnoreAction。
AttachedProperty Documentation
.active :bool
拖动事件序列是否是活动的。绑定这个属性到MouseArea::drag的active属性将在用户开始拖动时触发拖动。设置这个属性为真也发送QDragEnter事件到场景,事件携带组件实例的当前位置。设置它为假将发送QDragLeave事件。当拖动被激活,组件实例的任何位置变化,用QDragMove事件发送,QDragMove事件携带组件实例的新位置。
.dragType :enumeration
是否自动来时拖动或向后兼容内部拖动。默认为向后兼容内部拖动。拖动能用startDrag手动开始。它是下面的值之一:
Drag.None -不自动开始。
Drag.Automatic- 自动开始
Drag.Internal(default) -自动开始向后兼容拖动。
当使用Drag.Automatic时,我们必须定义mimeData和绑定active属性到MouseArea.drag的active属性。QML的属性在Qt5.2中介绍。
.hotSpot :QPointF
保存相对于组件实例左上角的相对拖动位置。默认为(0.0)。改变热点将触发新的更新位置的拖动。
.keys :stringlist
DropArea过滤拖动时间的关键字列表。在拖动激活后改变关键字,将触发拖动离开事件,然后触发新源的拖动进入事件,以此来复位拖动事件序列。
.mimeData :stringlist
拖动期间mimeData的映射。这个QML属性在Qt 5.2中被介绍。
.proposedAction: enumeration
拖动源建议的来自于Drag.drop()的返回行为。改变这个值将触发携带新的建议的移动事件。
.source :Object
用来被拖动事件的接收者确认事件源头的对象。默认是组件实例关联的Drag属性。
当拖动激活后改变值,将触发拖动离开事件,然后触发新源的拖动进入事件,以此来复位拖动事件序列。
.supportedActions: flags
被拖动源支持的Drag.drop()返回值。当拖动激活后改变值,将触发拖动离开事件,然后触发新源的拖动进入事件,以此来复位拖动事件序列。
.target :Object
当拖动激活后,最后接收拖动的组件实例进入的进入事件的对象。如果当前拖动位置没有和任何接受目标相交叉,那么target是空的。
当拖动没有激活,这个属性保存拖动结束时,接受放置事件的对象。如果拖动被取消或没有对象接受放置事件,则target是空的。
AttachedSignal Documentation
dragFinished(DropActionaction)
当拖动完成时,这个信号被触发,拖动可以用startDrag()开始或用dragType自动开始。
dragStarted()
当拖动开始时,这个信号被触发,拖动可以用startDrag()开始或用dragType自动开始。
AttachedMethod Documentation
voidcancel()
结束拖动序列。
enumerationdrop()
通过发送放置事件到目标组件实例来结束拖动序列。
返回被目标实例接受的行为。如果目标实例或父不接受放置事件,Qt.IgnoreAction将被返回,它是下面的值之一:
Qt.CopyAction:拷贝数据到目标
Qt.MoveActionMove:从源移动数据到目标
Qt.LinkActionCreate:建立源到目标的链接
Qt.IgnoreAction:什么都不做。
voidstart(flags supportedActions)
开始拖动事件,这是内部拖动的老方法。startDrag是新方法,是拖动的首选方法。可选择是否使用supportedActions参数,用来替代supportedActions属性。
voidstartDrag(flags supportedActions)
开始拖动事件。可选择是否使用supportedActions参数,用来替代supportedActions属性。- QML类型说明-Drag
- QML类型说明-Accessible
- QML类型说明-Action
- QML类型说明-Address
- QML类型说明-Affector
- QML类型说明-Age
- QML类型说明-Altimeter
- QML类型说明-AltimeterReading
- QML类型说明-AmbientLightReading
- QML类型说明-AmbientLightSensor
- QML类型说明-AnchorAnimation
- QML类型说明-AnchorChanges
- QML类型说明-AngleDirection
- QML类型说明-ParallelAnimation
- QML类型说明-Animator
- QML类型说明-AnimatedImage
- QML类型说明-AnimatedSprite
- QML类型说明-ApplicationWindow
- Unity CustomEditor 自定义编辑脚本Inspector面板
- 漂浮广告,兼容ie、firefox,多个漂浮不冲突,调用只需两行代码
- 查找目录下的所有文件中是否含有某个字符串 linux
- unity里利用C# 读写XML
- CentOS 64位配置ftp 虚拟用户
- QML类型说明-Drag
- DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之2: Chap4: Direct3D Initialization
- JS 遍历子节点查找元素
- 求转置矩阵问题
- C# 图片和二进制之间的转换
- tachyon实探
- QML类型说明-DragEvent
- 更换投影仪二三事
- QML类型说明-DropArea