QT学习:QDropEvent拖拽事件
QT学习:QDropEvent拖拽事件
- 步骤
- 实现
使用QT实现一个如下的拖拽、拖放动作,只需要三步。主要是使用dropEvent和dragEnterEvent事件处理即可以。
步骤
- 1、
setAcceptDrops(true)
设置目的QWidget接收拖拽拖放事件 - 2、重写
dragEnterEvent
事件,并对正确的事件进行acceptProposedAction
接受操作 - 3、重写
dropEvent
事件,处理主要的逻辑即可
实现
在UI中画好布局,然后全部代码如下所示:
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);setAcceptDrops(true); // 1. 整个MainWindow接收拖拽事件
}// 2.重写拖拽进入事件
void MainWindow::dragEnterEvent(QDragEnterEvent* event)
{if (event->mimeData()->hasUrls()) {event->acceptProposedAction(); // 3. 有拖拽文件时设置接受}
}// 4.重写件拖拽放下事件,处理所需
void MainWindow::dropEvent(QDropEvent *event)
{if (event->mimeData()->hasUrls()) {QList<QUrl> urls = event->mimeData()->urls();if(urls.isEmpty()) {return;}ui->textEdit->setText(urls.first().toLocalFile());}
}
在dragEnterEvent
中判断如果当前mime
类型为文本或者url
(本地文件是以url
类型描述的),则调用acceptProposedAction
来设置对应的事件发生flag——只有设置了这个flag,后面的drop事件才会发生。如果要捕获所有类型的拖放事件则可以直接调用acceptProposedAction
。
QT学习:QDropEvent拖拽事件相关推荐
- JavaScript学习第十六天(键盘事件、表单事件、拖拽事件、框架事件、媒体事件)
文章目录 键盘事件 表单事件 剪贴板事件 拖拽事件 打印事件 框架事件 媒体事件 总结 键盘事件 onkeydown 键盘按下事件,当有按键按下时触发 onkeyup 键盘松开事件,当有按键被松开时触 ...
- 中如何使用echart_jQueryEasyUI中的拖拽事件如何使用
jQueryEasyUI中的拖拽事件通过给它设置代理元素使其拖拽.可设置拖动元素相对于x.y轴拖动,可设置拖拽何时停止等效果 jQuery中的easyui是一个非常好用的插件,它虽然使用简单方便,但是 ...
- jquery UI 跟随学习笔记——拖拽(Draggable)
jquery UI 跟随学习笔记--拖拽(Draggable) 引言 这周暂时没有任务下达,所以老大给我的任务就是熟悉jquery相关插件,我就先选择了jquery UI 插件,以及jquery库学习 ...
- 2018年首篇,带大家一起学习视图拖拽功能的源码
今天的快讯我们对2017年的重大事件进行一下回顾吧. 乐视事件 回溯乐视的2017,"眼看他起朱楼,眼看他宴宾客,眼看他楼塌了".乐视历经了来自融创中国百亿融资.高层相继离职.裁员 ...
- 弹出框的鼠标拖拽事件
几个与定位有关的概念: js: clientX/clientY属性:获得事件发生时鼠标指针在视口中的水平和垂直坐标. screenX/screenY属性:获取鼠标事件发生时鼠标光标相对于整个电脑屏幕的 ...
- UGUI事件之Drag拖拽事件
UI事件之Drag拖拽事件 ======================================================== 2.UGUI 事件命名空间 当我们需要使用 UGUI 中的 ...
- JavaFX鼠标拖拽事件
一.节点原拖拽事件 //鼠标拖拽进入node node.setOnMouseDragEntered(event->{//do something });//鼠标拖拽退出node node.set ...
- [html] HTML5拖拽事件的顺序是什么?
[html] HTML5拖拽事件的顺序是什么? ondragstart :源对象开始被拖动 ondrag:源对象被拖动过程中 ondragend:源对象被拖动结束ondragenter:源对象拖动着进 ...
- Android--Launcher拖拽事件详解【androidICS4.0--Launcher系列二】
AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...
最新文章
- 22岁专访库克、B站3天涨粉百万,他将毕设树莓派扫描仪升级,繁星散落在校空!...
- 【AMAD】import-string -- 通过字符串来import一个对象
- 首个64层3D NAND闪存技术出现
- postgresql 获取所有表名、字段名、字段类型、注释
- [Struts]Token 使用及原理
- [译]NectarJS:编译JavaScript为任意平台原生二进制代码
- 定时任务框架APScheduler学习详解
- 避坑!gulp-imagemin运行出问题
- jvm 安装位置_简单了解JVM
- java与微信小程序通讯_java与微信小程序实现websocket长连接
- 沟通CTBS助真科电子跨平台接入
- 金蝶专业版怎么反过账当月_金蝶KIS专业版怎么反过账
- jeecms常见用法
- 【Unity】Jay 开发日志(一)——人物的移动、死亡与平台跳跃
- 阿拉伯数字转换成大写的数字
- 51单片机矩阵键盘的控制原理-扫描及使用方式
- SEO是什么意思?seo入门者必读
- Mac系统重装 “未能安装在您的电脑上 没有符合安装资格的软件包” 具体解决方案
- 新增数据并发处理,避免重复数据插入
- ffmpeg4.2.2 实现封装格式文件(如flv)解码成yuv420p和pcm
热门文章
- 怎么设置计算机的快捷键图标,Win7旗舰版如何更改桌面快捷方式和文件类型图标...
- 2022-2027年中国网络定制巴士行业发展前景及投资战略咨询报告
- Yolov3、v4、v5、Yolox模型权重及网络结构图资源下载
- 关于如何解决IDEA中修改HTML或CSS,但是服务器上的HTML却不改变的问题
- 第一章 MATLAB简介
- 得物从0到1自研客服IM系统的技术实践之路
- matlab变步长的梯形公式,用变步长梯形法计算积分∫sinx/x*x的近似值(二分二次即可)...
- IO 多路复用:C10K 问题
- datax 学习记录
- Springboot整合SQLServer