QML控件拖动并靠边停留
前言
用QML做控件拖动,当鼠标按下要拖动的按钮然后移动鼠标,控件坐标会随着鼠标而移动,释放鼠标后判断当前的控件位置,然后选择要停留在父窗口的左边还是右边,再通过动画将控件移动到边上。这种场景在做工具栏悬浮按钮的时候比较常见。正文
实现方式很简单,通过Drag类来实现,并且参考了Qt帮助文档中的示例。
直接上代码吧importQtQuick2。6Item{id:rootwidth:500;height:400Rectangle{id:rectx:10;y:10width:50;height:50color:redNumberAnimationonx{id:aniduration:400easing。type:Easing。OutCubic}Drag。active:dragArea。drag。activeMouseArea{id:dragAreaanchors。fill:parentdrag。target:parentdrag。maximumY:root。heightrect。heightdrag。minimumY:0onPositionChanged:{console。log(x,mouseX,y,mouseY,rect。x,rect。y)}onReleased:{if(rect。xroot。width2。){ani。toroot。widthrect。widthani。start()}else{ani。to0ani。start()}}}}}
来看看效果图
【领QT开发教程学习资料,点击下方链接免费领取,先码住不迷路】
点击这里:链接