包含文件
#include <QMimeData>
#include <QList>
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dropEvent(QDropEvent *event);
//拖动文件到窗口
void Widget::dragEnterEvent(QDragEnterEvent *event)
{
if(event->mimeData()->hasFormat("text/uri-list"))//只接收文件/文件夹
event->acceptProposedAction();//响应事件,表示可以接收文件
}
//放下文件
void Widget::dropEvent(QDropEvent *event)
{
QList<QUrl> urls = event->mimeData()->urls();
if(urls.isEmpty())
return;
foreach(QUrl url, urls) {
QString file_name = url.toLocalFile();
ui->listWidget->addItem(file_name + tr("加入文件!"));
}
}
void Widget::dragMoveEvent(QDragMoveEvent *event)
{
// qDebug() << "drag move";
}
接收拖放事件,如果对象是有效文件或文件夹,则鼠标可放不可放状态自动改变。
放下后在listwidget内显示出拖来的所有对象名。