以拖动一个文本对象为例
1、被拖放的Widget
重载虚函数
protected:
virtual void mousePressEvent(QMouseEvent*);
实现:
添加头文件qdragobject.h
mousePressEvent实现
{
//新建一个QDragObject类的对象
//QDragObject * pDragObj = new ...
QDragObject * pDragObj = new QTextDrag(...,this);
pDragObj->dragCopy();
}
2、接收的Widget
重载虚函数
protected:
virtual void dragEnterEvent(QDragEnterEvent*e);
virtual void dropEvent(QDropEvent*e);
实现:
添加头文件qdragobject.h
构造函数添加一行:
setAcceptDrops(TRUE);
dragEnterEvent实现
{
e->accept(QTextDrag::canDecode(e));
}
dropEvent实现
{
QString strText;
if(QTextDrag::decode(e,strText) )
{
...
}
}