Qt界面添加拖拽功能

·

重载两个虚函数

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);
        }
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注