第40课 拖放事件深度剖析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第40课 拖放事件深度剖析相关的知识,希望对你有一定的参考价值。

1. Qt中的拖放事件

(1)拖放一个文件进入窗口时将触发拖放事件

(2)每一个QWidget对象都能够处理拖放事件

(3)拖放事件的处理函数为

  void dragEnterEvent(QDragEnterEvent* e);

  void dropEvent(QDropEvent* e);

2. 拖放事件中的QMimeData

(1)QMimeData是Qt中的多媒体数据类

(2)拖放事件通过QMimeData对象传递数据

(3)QMimeData支持多种不同类型的多媒体数据

(4)常MIME类型数据处理函数

测试函数

获取函数

设置函数

MIME类型

hasText()

text()

setText()

text/plain

hashtml()

Html()

setHtml()

text/html

hasUrls()

Urls()

setUrls()

text/uri-list

hasImage()

imageData()

setImageData()

image/*

hasColor()

colorData()

setColorData()

application/x-color

3. 自定义拖放事件的步骤

(1)对接收拖放事件的对象调用setAccpetDrops成员函数

(2)重写dragEnterEvent函数并判断MIME类型

  ①如果是期望数据:e->acceptProposedAction();

  ②如果是其它数据:e->ignore();

(3)重写dropEvent函数并判断MIME类型

  ①如果是期望数据:从事件对象中获取MIME数据并处理

  ②其它数据:e->ignore();

【编程实验】拖放事件初探

 

4. 文本编辑器中的拖放事件

(1)文本编辑器中的拖放操作

技术分享

(2)解决方案

  ①调用主窗口对象的setAcceptDrops成员函数

  ②重写dragEnterEvent函数并判断MIME类型

  ③重写dropEvent函数并判断MIME类型后打开文件

【编程实验】文本编辑器中的拖放事件

 

5. 小结

(1)QWidget对象都能够处理拖放事件

(2)自定义拖放事件的方法

  ①调用事件接收对象的setAcceptDrops成员函数

  ②重写dragEnterEvent函数并判断MIME类型

  ③重写dropEvent函数并判断MIME类型后进行事件处理

以上是关于第40课 拖放事件深度剖析的主要内容,如果未能解决你的问题,请参考以下文章

唐宇迪老师现场剖析深度学习——免费公开课招募啦~~~

Nacos源码系列——第二章(Nacos核心源码主线剖析下)

监听器事件事件源事件注册深度剖析

libevent学习笔记(参考libevent深度剖析)

JS中事件穿透深度剖析与多种解决方案

深度剖析 Apache EventMesh 云原生分布式事件驱动架构