第一步,设置窗体属性;
this->setAcceptDrops(true);//设置窗口启用拖动
第二步,声明拖动事件函数;
protected:
void dragEnterEvent(QDragEnterEvent*event);//拖动进入事件
void dropEvent(QDropEvent*event);
第三步,函数实现。
void CPaintAreaWidget::dragEnterEvent(QDragEnterEvent* event)
{
if(!event->mimeData()->urls()[0].toLocalFile().right(3).compare("jpg",Qt::CaseInsensitive)
||!event->mimeData()->urls()[0].toLocalFile().right(3).compare("png",Qt::CaseInsensitive)
||!event->mimeData()->urls()[0].toLocalFile().right(3).compare("bmp",Qt::CaseInsensitive)
||!event->mimeData()->urls()[0].toLocalFile().right(4).compare("jpeg",Qt::CaseInsensitive))
{
event->acceptProposedAction();//接受鼠标拖入事件
}
else
{
event->ignore();//否则不接受鼠标事件
}
}
void CPaintAreaWidget::dropEvent(QDropEvent* event)
{
//窗口部件放下一个对象时,调用该函数
const QMimeData *qm=event->mimeData();//获取MIMEData
QImage image(qm->urls()[0].toLocalFile());
SetPicInfo(image);//使用图片函数
}