前言

用QML做控件拖动,当鼠标按下要拖动的按钮然后移动鼠标,控件坐标会随着鼠标而移动,释放鼠标后判断当前的控件位置,然后选择要停留在父窗口的左边还是右边,再通过动画将控件移动到边上。这种场景在做工具栏悬浮按钮的时候比较常见。

正文

实现方式很简单,通过Drag类来实现,并且参考了Qt帮助文档中的示例。
直接上代码吧

import QtQuick 2.6Item {id:rootwidth: 500; height: 400Rectangle {id:rectx: 10; y: 10width: 50; height: 50color: "red"NumberAnimation on x{id:aniduration: 400easing.type: Easing.OutCubic}Drag.active: dragArea.drag.activeMouseArea {id: dragAreaanchors.fill: parentdrag.target: parentdrag.maximumY:root.height-rect.heightdrag.minimumY: 0onPositionChanged: {console.log("x",mouseX,"y",mouseY,rect.x,rect.y)}onReleased: {if(rect.x > root.width/2.){ani.to = root.width - rect.widthani.start()}else{ani.to = 0ani.start()}}}}}

来看看效果图

QML控件拖动并靠边停留相关推荐

  1. Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

    Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...

  2. C# wpf 实现Canvas内控件拖动

    系列文章目录 第一章 Grid内控件拖动 第二章 Canvas内控件拖动(本章) 第三章 任意控件拖动 第四章 窗口拖动 第五章 附加属性实现任意拖动 文章目录 系列文章目录 前言 一.如何实现? 1 ...

  3. C# wpf 实现Grid内控件拖动

    系列文章目录 第一章 Grid内控件拖动(本章) 第二章 Canvas内控件拖动 第三章 任意控件拖动 第四章 窗口拖动 第五章 附加属性实现任意拖动 文章目录 系列文章目录 前言 一.如何实现? 1 ...

  4. Qml控件:ComboBox

    Qml控件:ComboBox ComboBox默认状态 定制ComboBox 1.定制框架 2.定制指示器 3.定制背景 4.定制内容 5.定制弹框 6.定制弹框Item 7.弹框项的点击 8.定制删 ...

  5. [转载]WPF控件拖动

    这篇博文总结下WPF中的拖动,文章内容主要包括: 1.拖动窗口 2.拖动控件 Using Visual Studio 2.1thumb控件 2.2Drag.Drop(不连续,没有中间动画) 2.3拖动 ...

  6. android 父控件的背景_android控件拖动,移动、解决父布局重绘时控件回到原点

    /** * * @description 设置意见反馈,用以灰度发布 * @author zhongwr * @params * @update 2016年1月12日 下午5:36:07 */ pri ...

  7. android控件拖动,移动、解决父布局重绘时控件回到原点

    最近公司做小游戏开发,写倒计时加进度条 拖动问题private boolean isIntercept = false; /** 按下时的位置控件相对屏幕左上角的位置X */ private int ...

  8. Winform控件拖动

    给要实现拖动的控件添加如下的 MouseDown 和 MouseMove 事件即可. private Point startPoint; private void MouseDown(object s ...

  9. Qml控件之Calendar日历

    Calendar(日历)控件是基于Qml实现的,它兼容于QtQuick 1.x和QtQuick 2.x.可用于显示日期信息. 1. 演示 2. 例子 import QtQuick 2.0 // Qt4 ...

最新文章

  1. JAVA基础——编程练习(一)
  2. ajax怎么设置好友,好友按ajax新消息通知
  3. 深度学习:知识回收(Lecture1and2)
  4. 关于用notepad++确认代码中\r\n\t空格等不显示的字符
  5. ecshop 标签使用 非常好的例子
  6. Doc2Bow简介与实践Demo
  7. [导入][导入][c#]Web开发中Tag的开发技巧
  8. 电脑显示器不亮主机正常_电脑主机已开机 显示屏却不亮(看完秒懂)
  9. 作者:黄玲玲(1982-),女,博士,安徽省公共交通安全科学研究院副研究员。...
  10. 枚举数据类型 c# 114866833
  11. Nginx代理连接Redis失败
  12. 各种编程语言,Linux命令行播放,Bio-Linux,Markdown编辑器等
  13. inode及硬链接和软链接
  14. python 计算时间、日期差值类
  15. mysql下载备份数据库命令行_MYSQL 数据库导入导出命令 | 很文博客
  16. hdu5336XYZ and Drops
  17. 购物是女人的天堂,男人的地狱,不了解清楚万一以后被坑了,男人躲哪里后悔去,做这样一个web购物网站,买了货死活回不来,让双十一的女人们过过瘾
  18. 计算机中文档的后退键,后退快捷键ctrl加什么
  19. histogram函数 python_Python numpy.histogram函数方法的使用
  20. 基于PHP+MySQL的美容会所企业资产管理系统

热门文章

  1. RTC 音频质量评价和保障
  2. Django 中间件
  3. VuePress 手摸手教你搭建一个类Vue文档风格的技术文档/博客
  4. 漫游Kafka之过期数据清理
  5. 文件上传利器SWFUpload入门简易教程
  6. [控件] TranformFadeView
  7. ios序列化与反序列化,本地化
  8. 关于win7的64位和32位有什么不同性价比怎么比
  9. 计算机系统行业竞争水平,中国计算机等23行业国际竞争力超世界平均水平
  10. Linux如何修改用户名?