qt之QDrag
来源:互联网 发布:如何屏蔽公司网络监控 编辑:程序博客网 时间:2024/04/30 01:41
这个QDrag类提供了MIME基础数据类型的拖动和释放,
拖动和放下对用户拷贝和移动数据是一种直观的方式。
数据的移动通过QMimeData的拖动和放下完成,设置数据是通过如下的方式
QDrag *drag = new QDrag(this);
QMimeData *mimeData = new QMimeData;
mimeData->setText(commentEdit->toPlainText());
drag->setMimeData(mimeData);
Drag->setMimeData 指定QMimeData对象到QDrag对象,此时QDrag必须在堆中被构建,因为在拖放完成之后 ,qt会清理QDrag对象
当拖动进行时,我们可以用pixmap来代表拖动的数据,这个pixmap可以用来代表MiME类型,我们也可以通过函数setpixmap(),来指定pixmap,而这个鼠标的焦点,我们可以通过setHotSpot来指定鼠标在拖动期间在pixmap上的位置,下面的代码将鼠标设置在底部的中心
drag->setHotSpot(QPoint(drag->pixmap().width()/2,
drag->pixmap().height()));
源窗口和目标窗口,可以通过成员函数source()和target()查找,这两个函数决定了,拖放是否是在同一个窗口
QDrag 仅仅是处理自己的拖放操作,当托操作开始的时候,它适用于开发者去决定怎样去构造或者使用一个QDrag对象。
在通常情况下,通过重新实现mousepressEvent来决定用户是否按下鼠标按钮,mouseMoveEvent检查是否需要QDrag
QDrag::QDrag(QObject * dragSource)
在源窗口构建一个QDrag对象。
QDrag::~QDrag()
销毁对象
void QDrag::actionChanged(Qt::DropAction action)
当拖懂的行为被该变时,发射该信号
Qt::DropAction QDrag::defaultAction() const
返回拖动操作的默认放下行为
QPixmap QDrag::dragCursor(Qt::DropAction action) const
返回拖动操作时的鼠标图标
Qt::DropAction QDrag::exec(Qt::DropActions supportedActions = Qt::MoveAction)
开始拖放操作,放托放完成之后会返回一个请求放下行为的指示值,而这个放下的操作用户可以用指定的supportedActions中选择
QPoint QDrag::hotSpot() const
返回相对于鼠标左上角的的焦点
QMimeData * QDrag::mimeData() const
返回通过setMimeData设置的QMimeDate
QPixmap QDrag::pixmap() const
返回代表拖放操作数据的图片,可以通过setPixmap函数设置这个图片
void QDrag::setDragCursor(const QPixmap & cursor, Qt::DropAction action)
设置拖动时的鼠标,这个action只对CopyAction,MoveAction or LinkAction有作用
void QDrag::setHotSpot(const QPoint & hotspot)
设置拖动的热点
void QDrag::setMimeData(QMimeData * data)
向QDrag中设置QMimeData
void QDrag::setPixmap(const QPixmap & pixmap)
设置拖放时,代表数据的图标,在拖动开始之前
QObject * QDrag::source() const
返回拖放的源窗口
Qt::DropActions QDrag::supportedActions() const
返回支持放下的行为。
void QDrag::targetChanged(QObject * newTarget)
当目标窗口被改变时,将会发射该信号
- qt之QDrag
- qt 拖动 讲解 QDrag
- QDrag 类
- QDrag类
- QDrag简介
- qt 在mouseMoveEvent 中调用QDrag.exec() 后不会响应本控件的mouseReleaseEvent
- QDrag 类 收藏
- QDrag 使用一例
- QDrag的使用
- qt学习之qt creator
- qt学习之qt安装
- Qt基础之hello qt
- Qt之Qt::WA_DeleteOnClose详解
- Qt|Qt之鼠标样式
- Qt 之 Qt Charts 模块
- qt学习之qtableview
- 开始Qt之旅
- Qt之对话框
- 13 SQLiteOpenHelper SQLiteDatabase详解
- VC++6.0 Win32应用程序 如何添加窗体 ------阿冬专栏
- 34. Search for a Range-二分搜索
- irrlicht实现沿平面移动物体
- 机智云开发者大会|第一个把发布会开在北京MIX的物联网公司
- qt之QDrag
- LeetCode:Two Sum II - Input array is sorted
- bzoj3224: Tyvj 1728 普通平衡树
- ads 修改snap的单位
- 使用Automake 创建和使用静态库 转
- 反射+注解
- 邮局问题(DP)
- MySQL隐式转化整理
- HDU:2555 人人都能参加第30届校田径运动会了