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类型后进行事件处理
时间: 2024-10-12 16:20:20