qt drag
来源:互联网 发布:什么叫it行业 编辑:程序博客网 时间:2024/06/07 21:06
Drag类为MIME-based拖拽数据转换提供支持
在一个应用程序中,数据拖拽对用户来说失意而归直观的方法,在很多桌面环境中都作为一个应用程序之间拷贝数据的结构,在QT中拖拽主要主要围绕着QDrag类
通过拖拽来交换的数据包含在一个QMimeData对象中,这个对象通过setMimeData()来
制定,用下面的方法
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
mimeData->setText(commentEdit->toPlainText());
drag->setMimeData(mimeData);
setMimeData()指定了拖拽对象和QMimeData对象之间的关系,QDrag必须在堆上申请,必须要有一个父对象窗口,来确定QT可以在拖拽操作完成后清除QDrag对象
在拖拽进行过程中,可以使用图片来呈现数据,将会把光标移动到拖拽目标体上,图
片会以图标的形式展示正在被拖拽的MIME数据类型,可以通过setPixmap()来制定图标
,也可以通过setHotSpot()来设置拖拽时候图标的显示位置,例如
drag->setHotSpot(QPoint(drag->pixmap().width()/2,drag->pixmap().height()));
注:在X11下,如果图表显示位置直接在光标下面的话,当鼠标移动的时候可能不能显示
拖拽的资源和目标窗口可以通过source()和target()来找到,这些函数常常用来决定在同一窗口中拖拽行为是否开始和结束,因此特殊的行为可以被完成,QDrag只处理拖拽操作本身,对开发者来说,还是需要自己决定什么时候拖拽开始,一个QDrag对象如何构造,如何使用,对一个给定的窗口,通常需要重新实现mousePressEvent()来判断用户是否按下了鼠标,重新实现mouseMoveEvent()来核对一个QDrag是否被请求
Qt::DropAction QDrag::exec(Qt::DropAction supportedActions=Qt::MoveAction)
用于开始一个拖拽循环,一直等到当拖拽结束时候,返回一个数值来,拖拽行为用户
可以从指定的supportedActions中来挑选,默认的将会被从Move,Copy和copy行为中挑
选一个
QDrag::exec() 会阻塞拖动的操作,直到用户完成操作或者取消操作。它接受不同类
型的动作作为参数,返回值是真正执行的动作。这些动作的类型为 Qt::CopyAction,
Qt::MoveAction 和 Qt::LinkAction。返回值会有这三种动作,同时增加一个
Qt::IgnoreAction 用于表示用户取消了拖放。
原文链接:http://blog.csdn.net/xie376450483/article/details/5840664
- qt drag
- Qt drag & drop
- Qt Drag and Drop
- Qt listView drag&drop
- 拖放 Drag 、Drop------------------Qt
- QT简单DRAG AND DROP
- Qt Drag与Drop 学习
- Qt之drag and drop
- Qt拖放 drag and drop
- Qt drag和drop演示
- Qt拖放 drag and drop
- Qt拖放 drag and drop
- Qt Drag and Drop 学习笔记
- Qt 小程序: Drag and Drop
- Qt Model/View Drag and Drop
- qt dnd drag and drop 拖放
- QT之拖拽Drag-Drop
- drag
- 掌握Git 之美
- php 源码安装
- 物化视图详解及与普通视图的区别
- MyBatisGenerator的自动生成代码之Eclipse
- DNS学习总结
- qt drag
- Android网络API(android.net.wifi.aware):概览
- h5安卓页面键盘遮挡表单的办法处理
- HEVC学习笔记(一)——基本知识
- Android px与dip(dp)、px与sp单位的转换
- 服务器配置的各种英文简称
- vue.js+nodejs的MVVM笔记
- caffe中Eltwise层
- yii, gridview隐藏查看view按钮以及自定义查看按钮链接