重载两个虚函数
void dragEnterEvent(QDragEnterEvent *event) override; void dropEvent(QDropEvent *event) override;
设置允许接收拖拽事件并且实现拖拽获取文件路径功能
#include <QMimeData>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setAcceptDrops(true);
}
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls())
{
event->acceptProposedAction();
}
else
{
event->ignore();
}
}
void MainWindow::dropEvent(QDropEvent *event)
{
const QMimeData* mimeData = event->mimeData();
if (mimeData->hasUrls())
{
QList<QUrl>urlList = mimeData->urls();
QString fileName = urlList.at(0).toLocalFile();
if (!fileName.isEmpty())
{
ui->PathLineEdit->setText(fileName);
}
}
}
发表回复