要某一个控件接受拖放事件,需重写该控件,并在其构造函数中setAcceptDrops(true)来接收事件。
由于该事件是从子控件向父类传递,若要父类相应,需将子类setAcceptDrops(false);
在一个继承自QWidget的类里面重写下面四个事件处理函数
//对于拖动源要实现的函数
void mousePressEvent(QMouseEvent *event); //鼠标按下
void dragMoveEvent(QDragMoveEvent *event); //鼠标拖动
//对于拖动目标要写的函数
void dragEnterEvent(QDragEnterEvent *event); //鼠标拖入
void dropEvent(QDropEvent *event); //鼠标放下