QT应用编程: 鼠标拖动文件到应用程序窗口

简介: QT应用编程: 鼠标拖动文件到应用程序窗口

一、环境介绍

操作系统介绍:win10 64位


QT版本: 5.12.6


二、功能介绍

最近开发一款视频播放器,为了方便用户播放视频文件,增加功能:  用户可以直接将视频文件拖动到窗口里播放。


三、实现思路

在QWidget类中重载dragEnterEvent()和dropEvent()函数,并在构造函数中调用setAcceptDrops()函数即可。

class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    ............
protected:
    ..........
    void dragEnterEvent(QDragEnterEvent *e);
    void dropEvent(QDropEvent *e);
}
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    .................
    setAcceptDrops(true);
}
void Widget::dragEnterEvent(QDragEnterEvent *e)
{
    if (e->mimeData()->hasUrls())
    {
        e->acceptProposedAction();
    }
}
void Widget::dropEvent(QDropEvent *e)
{
    foreach (const QUrl &url, e->mimeData()->urls())
    {
        QString fileName = url.toLocalFile();
        qDebug() << "拖入的文件名称:" << fileName;
        ...........
    }
}

四、运行效果

image.png

image.png


目录
相关文章
|
2天前
|
数据安全/隐私保护
Qt布局(登录窗口实现)
Qt布局(登录窗口实现)
11 4
|
2天前
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
8 1
|
14天前
Qt MainWindow 程序主窗口
Qt MainWindow 程序主窗口
|
21天前
Qt窗口的闪烁QWebEngineView
Qt窗口的闪烁QWebEngineView
|
21天前
|
存储
Qt无边框窗口可拖动
Qt无边框窗口可拖动
|
1月前
|
Windows 安全 C++
Qt字符串类应用与常用基本数据类型
Qt字符串类应用与常用基本数据类型
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
|
1月前
|
Windows
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
|
1月前
|
人工智能 编译器 C++
新版Qt6快速打包程序脚本
不知道啥时候Qt更新了,目前是6.7.0,项目默认的生成路径改了, 从 项目目录的同级目录 改为了 项目目录中的build目录, 之前的脚本也用不了了,所以用AI更新了一下脚本, 希望能帮到大家,方便快速打包程序到桌面。
60 9
|
1月前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
72 3