QDrag的使用
来源:互联网 发布:js sort 排序 编辑:程序博客网 时间:2024/04/28 13:15
QDrag类为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 用于表示用户取消了拖放。
- QDrag的使用
- QDrag 使用一例
- QDrag 类
- QDrag类
- QDrag简介
- qt 在mouseMoveEvent 中调用QDrag.exec() 后不会响应本控件的mouseReleaseEvent
- QDrag 类 收藏
- qt 拖动 讲解 QDrag
- qt之QDrag
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- QSortFilterProxyModel的使用
- Asp.net项目同一个用户后登录把前面登录的踢下线的两种实现方法
- QString的使用
- 权限赋予
- “System.Windows.Controls.DataGridColumnCollection”类型的集合添加值时发生异常。 [Line: 772 Position: 172]
- QDrag的使用
- WindRAR 4.10,4.11,4.20 注册版
- iOS开发---开源项目和开源类库篇(持续更新中)
- linux《浅谈Linux的硬链接和软链接的区别》
- Monkey's Audio 4.10 英文原版+汉化版
- Camtasia Studio 8.0.2 绿色破解版
- JSONP
- 修改 oracle 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- 3D影音免费版