QML控件拖动并靠边停留
来源:互联网 发布:线上展厅制作软件 编辑:程序博客网 时间:2024/05/17 23:04
前言
用QML做控件拖动,当鼠标按下要拖动的按钮然后移动鼠标,控件坐标会随着鼠标而移动,释放鼠标后判断当前的控件位置,然后选择要停留在父窗口的左边还是右边,再通过动画将控件移动到边上。这种场景在做工具栏悬浮按钮的时候比较常见。
正文
实现方式很简单,通过Drag类来实现,并且参考了Qt帮助文档中的示例。
直接上代码吧
import QtQuick 2.6 Item { id:root width: 500; height: 400 Rectangle { id:rect x: 10; y: 10 width: 50; height: 50 color: "red" NumberAnimation on x{ id:ani duration: 400 easing.type: Easing.OutCubic } Drag.active: dragArea.drag.active MouseArea { id: dragArea anchors.fill: parent drag.target: parent drag.maximumY:root.height-rect.height drag.minimumY: 0 onPositionChanged: { console.log("x",mouseX,"y",mouseY,rect.x,rect.y) } onReleased: { if(rect.x > root.width/2.){ ani.to = root.width - rect.width ani.start() } else{ ani.to = 0 ani.start() } } } } }
来看看效果图
0 0
- QML控件拖动并靠边停留
- qml实现窗口拖动
- qml实现拖动
- iOS 动态创建控件 并可以拖动控件
- C#鼠标拖动控件改变位置并绘制虚框
- C# WinForm VS2005 动态添加并拖动控件
- C#鼠标拖动控件改变位置并绘制虚框
- 让Flex控件 Canvas实现弹出窗口并拖动
- C#鼠标拖动控件改变位置并绘制虚框
- 拖动控件
- 控件拖动
- QML关于控件截图
- QML自定义控件Button
- QML使用PinchArea实现捏拉缩放与旋转并单手拖放控件
- 实现运行以后改变控件的大小并能拖动控件
- 拖动一个控件在另一个控件(layout)上,并固定位置在几个位置显示
- 自定义控件的拖动
- 自定义控件的拖动
- zip
- cpu
- cpu负荷
- 硬盘IO负荷
- JVM内存区域划分
- QML控件拖动并靠边停留
- MFC中模态和非模态对话框的创建和区别
- python学习 生成器 列表生成式 迭代器
- H3C Comware V7新增的RBAC
- 判断机器是否开机
- Java的反射机制
- Numpy 创建数组
- postgres数据导入导出
- 15款最好用的思维导图(心智图 )工具