文件拖拽到窗口
来源:互联网 发布:c语言return返回值给谁 编辑:程序博客网 时间:2024/06/03 20:39
文件拖拽到窗口
方法一:重写部件拖拽处理函数
设置UI接受拖拽:
重写:
.h
#include <QDebug>#include <QEvent>#include <QDropEvent>#include <QMimeData>protected: void dragEnterEvent(QDragEnterEvent * event); void dropEvent(QDropEvent * event);
.cpp
void Dialog::dragEnterEvent(QDragEnterEvent * event){ qDebug()<<__FUNCTION__; event->acceptProposedAction(); //接受拖拽的文件}void Dialog::dropEvent(QDropEvent * event){ qDebug()<<__FUNCTION__; auto urls = event->mimeData()->urls(); for(auto it = urls.begin();it != urls.end();++it) //获取拖拽的文件名 qDebug()<<it->toLocalFile();}
- 结果:
方法二:使用 eventFilter 设置拖动到控件上 - 设置控件属性,与方法一一致:
- 代码:
.h
bool eventFilter(QObject *watched, QEvent *event);
.cpp
构造函数:
ui->comboBox->installEventFilter(this);
eventFilter:
bool Dialog::eventFilter(QObject *watched, QEvent *event){ if(watched == ui->comboBox) //控件的事件 { if(event->type() == QEvent::DragEnter) //拖拽到控件 { qDebug()<<"QEvent::DragEnter"; ((QDragEnterEvent * )event)->acceptProposedAction(); //接受 return true; } else if(event->type() == QEvent::Drop) //拖拽完成 { qDebug()<<"QEvent::Drop"; auto urls = ((QDragEnterEvent * )event)->mimeData()->urls(); for(auto it = urls.begin();it != urls.end();++it) //加到控件里头去 { qDebug()<<it->toLocalFile(); ui->comboBox->addItem(it->toLocalFile()); } return true; } } return QDialog::eventFilter(watched,event);}
- 拖拽完成后:
阅读全文
0 0
- 文件拖拽到窗口
- 窗口接收文件
- 文件目录、子窗口
- 多重窗口文件浏览器
- pyqt5 窗口文件示范
- 打开文件窗口、保存文件窗口、文件流的方法
- 进程、窗口、文件-----相关方法
- 地图窗口加载mxd文件
- vc++ 创建浏览文件窗口
- 打开文件的属性窗口
- vim 浏览文件窗口插件
- 点击rb文件黑色窗口
- 【C#】 打开文件浏览窗口
- Win32api创建文件选择窗口
- VI 多窗口编辑文件
- command 窗口执行.sql文件
- MFC主窗口可拖入文件
- bat文件执行窗口暂停
- jQuery 选择器(:nth-child(n))详解
- java接口与对象区别
- 11月20号
- Oracle 11.2.0.4 升级到12.1.0.2 测试
- shell学习四十七天----文件比较cmp,diff,patch
- 文件拖拽到窗口
- Centos6.5手动编译安装nginx
- 各类机器学习问题的最优结果合集!附论文及实现地址索引
- 第三方 QQ登录
- 数字在排序数组中出现的次数
- Fragment+Viewpager结合实现底部页面滑动
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
- 数组中只出现一次的数字
- 开源 java CMS