Qt在QTreeWidget中实现拖动操作
发布日期:2021-11-15 14:57:54
浏览次数:35
分类:技术文章
本文共 1573 字,大约阅读时间需要 5 分钟。
拖动操作分为拖动和放下两种状态
拖动状态主要关于两个事件
void CTreeWidget::mousePressEvent(QMouseEvent *ev){ qDebug()<<"Enter mousePressEvent"; if (ev->button() == Qt::LeftButton) { m_beginDragPoint = ev->pos(); } QTreeWidget::mousePressEvent(ev);}void CTreeWidget::mouseMoveEvent(QMouseEvent *ev){ qDebug()<<"Enter mouseMoveEvent"; if (ev->buttons() & Qt::LeftButton) { int dragDistance = (ev->pos() - m_beginDragPoint).manhattanLength(); if (dragDistance > QApplication::startDragDistance()) { QByteArray data; QDataStream stream(&data,QIODevice::WriteOnly); stream << "ccc"<<"0"; QMimeData *mimeData = new QMimeData; mimeData->setData("camera-info",data); QDrag *drag = new QDrag(this); drag->setMimeData(mimeData);// drag->setPixmap(QPixmap(":/res/monitor/drag_play")); drag->exec(); } } QTreeWidget::mouseMoveEvent(ev);}
放下状态也是关于两个事件
void CTreeWidget::dragEnterEvent(QDragEnterEvent *ev){ if(ev->mimeData()->hasFormat("camera-info")) ev->acceptProposedAction();}void CTreeWidget::dropEvent(QDropEvent *ev){ QByteArray data = ev->mimeData()->data("camera-info"); QDataStream stream(&data,QIODevice::ReadOnly); QString cameraId; QString cameraType; QString cameraName; int login_handle; stream >>cameraId >>cameraType >>login_handle >>cameraName; QString info="camraName:"+cameraName+" cameraId:"+cameraId+" cameraType:"+cameraType; qDebug()<<">------ drop:"<
其他要执行的处理就是在这四个函数里添加
C++交流群:585225803
转载地址:https://blog.csdn.net/qq_39742146/article/details/84338554 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年03月30日 11时49分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
记一次iOS闪退问题的定位:NSLog闪退
2019-04-27
Unity打开照相机与打开本地相册然后在Unity中显示照片(Android与iOS)
2019-04-27
无需接入SDK即可在Unity中获取经纬度(Android/iOS),告诉我你的坐标
2019-04-27
Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
2019-04-27
Unity中获取物体的尺寸(size)的三种方法
2019-04-27
Unity中的关节组件和绳子效果的实现
2019-04-27
Unity可视化编程插件: Bolt,可以像UE4的蓝图那样啦
2019-04-27
Android的.dex、.odex与.oat文件扫盲
2019-04-27
Unity移动应用如何在Bugly上查看崩溃堆栈
2019-04-27
unity3D 在屏幕边框创建碰撞框
2019-04-27
xml中常用的转义符
2019-04-27
关于MSDK的几个难点
2019-04-27
使用UnityEditor做工具
2019-04-27
Visual Studio我常用的快捷键
2019-04-27
写C# dll供Unity调用
2019-04-27
Linux制作run安装包
2019-04-27
一分钟学会C#解析XML
2019-04-27
unity AssetBundle的资源管理
2019-04-27