第一步:在构造函数里面 添加拖放支持,相当于总开关(注意这里设置之后是整个窗口可以接受拖放)

setAcceptDrops(true);

第二步:重写接受拖放相关的虚函数

void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
void dragLeaveEvent(QDragLeaveEvent* event);
void dropEvent(QDropEvent* event);

第三步:实现以上虚函数,并在 dragEnterEvent 函数里面 过滤拖进来的内容

// 有东西被拖进来(拖着,未松开鼠标)
void QtTest::dragEnterEvent(QDragEnterEvent* event)
{
// 拖进来的东西属于哪种内容保存在formats里面
QStringList formats = event->mimeData()->formats();
for (int i = ; i < formats.size(); i++)
{
qDebug() << "formats : " << formats.at(i);
}
// 如果是文本才接受拖放
if (event->mimeData()->hasText())
{
event->acceptProposedAction();
}
} // 东西拖进来移动
void QtTest::dragMoveEvent(QDragMoveEvent* event)
{
qDebug() << "dragMoveEvent!" << endl;
} // 东西拖进来没有放下离开了
void QtTest::dragLeaveEvent(QDragLeaveEvent* event)
{
qDebug() << "dragLeaveEvent!" << endl;
} // 有东西被放下(松开鼠标)
void QtTest::dropEvent(QDropEvent* event)
{
// 判断进来的内容如果是文本,就直接设置label控件的内容
if (event->mimeData()->hasText())
{
ui.label->setText(event->mimeData()->text());
}
}

Qt 接受拖放的更多相关文章

  1. QT实现拖放文件(有例子,并且图文并茂,非常清楚)

    转自:http://my.oschina.net/voler/blog/345722 目录[-] 0. 源代码下载地址 1. 简单文件拖放 2. 复杂文件拖放 3. 通过按钮来完成列表数据的转移 4. ...

  2. Qt 如何处理拖放应用程序参数时,中国

    你用 Qt 我们开发的应用程序.用户拖放文件到您的 exe 在.启动应用程序,在这个时候, main() 功能参数可以接收中国.如何正确处理它?非常easy,码如下面: QTextCodec *cod ...

  3. QT 文件拖放事件dropEvent和dragEnterEvent

    重载以下两个函数,可以实现将文本文件拖放进文本编辑器 void MainWindow::dragEnterEvent(QDragEnterEvent *event)//拖进事件 { if(event- ...

  4. QT 实现拖放功能

    1. 文档拖放 获取文件名 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #i ...

  5. PyQt(Python+Qt)学习随笔:Qt Designer中部件的是否接受鼠标拖放事件的acceptDrops属性及含义

    acceptDrops属性表示当前部件是否接受鼠标拖放事件,鼠标拖放应该是与鼠标拖拽结合在一起的,在Qt Designer中可以通过属性acceptDrops设置部件是否接受鼠标拖放事件.如果部件接受 ...

  6. Qt 学习之路 2(52):使用拖放

    Qt 学习之路 2(52):使用拖放 豆子 2013年5月21日 Qt 学习之路 2 17条评论 拖放(Drag and Drop),通常会简称为 DnD,是现代软件开发中必不可少的一项技术.它提供了 ...

  7. 用Qt图形视图框架开发拼图游戏

    用Qt的图形视图框架(Graphics View Framework)做了一个拼图游戏DEMO,演示了: QGraphicsView.QGraphicsScene.QGraphicsItem的基本用法 ...

  8. 17.QT-事件处理分析、事件过滤器、拖放事件

    Qt事件处理介绍 Qt平台会将系统产生的消息转换为Qt事件 Qt事件是一个QEvent的对象 Qt事件用来描述程序内部或外部发生的动作 任意的QObject对象都具备事件处理的能力 Qt常见的事件继承 ...

  9. PyQt(Python+Qt)学习随笔:基于项的项部件(Item Widgets(Item-Based))概述

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Model/View架构中的视图部件是基于模型的项视图(Item Views(Model-Based ...

随机推荐

  1. python3.6安装 zipimport.ZipImportError: can't decompress data; zlib not available【转】

    python3.6.3 安装: .tgz cd Python- ./configure make make altinstall `make altinstall` , 报错: zipimport.Z ...

  2. Python自动化脚本-运维人员宝典

    文章地址: https://alanhou.org/basic-networking-socket-programming/ 第一章 Python脚本概述 第二章 Python脚本调试和性能测试 第三 ...

  3. android -------- LiveDataBus的使用

    LiveData是17年GoogleIO大会上提出来的一个新技术.相对于通信总线类型的框架EventBus和RxBus来说,它更简单,更简洁.更解耦. LiveEventBus是一款Android消息 ...

  4. thinkphp---404错误页面

    在用thinkphp开发项目的时候,会额外的处理404错误页面,但是我们很多的开发人员,在处理404错误页面的时候,处理方式都是不对的. 普通处理404的操作是通过 $this->error() ...

  5. Python 初级 6 循环 (三)

    一.复习 1 计算循环(for循环) for looper in [1, 2, 3, 4, 5]: print("hello") 1) looper的值从第0个数1开始 2) 对应 ...

  6. Bladex-Boot使用Postman调用服务说明

    一:GitBladex-Boot项目,并启动服务 二:打开Postman 三:使用Post,调用http://localhost/blade-auth/oauth/token/ 配置:Header中增 ...

  7. [LeetCode] 259. 3Sum Smaller 三数之和较小值

    Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 < ...

  8. python:封装连接数据库方法

    config.py # 数据库测试环境 name = '***' password = '******' host_port_sid = '10.**.*.**:1521/bidbuat' Oracl ...

  9. Python进阶之面向对象

    新式类与旧式类 区别: 在2.2版本之前所有的类都是旧式类,3.x版本已取消旧式类 旧式类一般的写法,不继承任何父类 class Person: def __init__(self, name): s ...

  10. k8s 集群 节点状态显示notready

    一般情况下 我们是在maste节点上安装网络插件的,然后在join node 节点,这样导致node节点可能无法加载到这些插件 使用 journalctl -f -u kubelet 显示如下内容 N ...