QT窗口拖拽功能简单应用(处理dragEnterEvent和dropEvent事件,不同的事件有不同的信息,比如mimeData)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT窗口拖拽功能简单应用(处理dragEnterEvent和dropEvent事件,不同的事件有不同的信息,比如mimeData)相关的知识,希望对你有一定的参考价值。

void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);

ui->lineEdit->setAcceptDrops(false);
this->setAcceptDrops(true);

// 拖拽处理函数
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
#if 1
    // 判断拖拽文件类型,文件名 接收该动作
    if (event->mimeData()->hasFormat("text/uri-list")) {
        event->acceptProposedAction();
    }
#endif
}

// 拖拽释放处理函数
void MainWindow::dropEvent(QDropEvent *event)
{
#if 1
    QList<QUrl> urls = event->mimeData()->urls();
    if (urls.isEmpty()) {
        return;
    }

    QString fileName = urls.first().toLocalFile();
    if (fileName.isEmpty()) {
        return;
    }

    ui->lineEdit->setText(fileName);
#endif

}

http://blog.csdn.net/emdfans/article/details/45672679

 

以上是关于QT窗口拖拽功能简单应用(处理dragEnterEvent和dropEvent事件,不同的事件有不同的信息,比如mimeData)的主要内容,如果未能解决你的问题,请参考以下文章

Electron开发:Electron 应用中的拖拽操作

简单的弹出拖拽窗口

Qt商业级无边框窗口实现源码(windowsmsvc)

QT笔记之自定义窗口拖拽移动

Qt 编程指南 2 Hello Designer

qt 拖拽时复制文字可以修改吗