Qt中实现拖放

来源:互联网 发布:李春贤调离新疆知乎 编辑:程序博客网 时间:2024/04/29 03:23

以拖动一个文本对象为例

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) )

         {

                 ...

         }

}

原创粉丝点击