·拖放一个文件进入窗口是将触发拖放事件
·每一个QWidget对象都能够处理拖放事件
·拖放事件的处理函数为
-void dragEnterEvent(QDragEnterEvent* e);
-void dropEvent(QDropEvent* e);
拖放事件中的QMimeData
-QMimeData 是 Qt 中的多媒体数据类
-拖放事件通过QMimeData 对象传递数据
-QMimeData支持多种不同类型的多媒体数据
自定义拖放事件的步骤
-对接收拖放事件的对象调用setAcceptDrops成员函数
-重写dragEnterEvent函数并判断MIME类型
·期望数据:e->acceptProposedAction();
`其他数据:e->ignore();
-重写dropEvent函数并判断MIME类型
·期望数据: 从事件对象中获取MIME数据并处理
·其他数据: e->ignore();
Widget::Widget(QWidget *parent) : QWidget(parent)
{
setAcceptDrops(true);
}
void Widget::dragEnterEvent(QDragEnterEvent *e)
{
if(e->mimeData()->hasUrls())
{
e->acceptProposedAction();
}
else
{
e->ignore();
}
}
void Widget::dropEvent(QDropEvent *e)
{
if(e->mimeDat