Qt在QTreeWidget中实现拖动操作
发布日期:2021-11-15 14:57:54
浏览次数:34
分类:技术文章
本文共 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月29日 02时14分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql 分库分表分区 动态扩容 总结
2019-04-27
分布式事务 四种方案
2019-04-27
redis和spring整合
2019-04-27
iis6 和iis7s上整个网站重定向
2019-04-27
iis7 url重写和重定向
2019-04-27
navicat工具来将SQL Server数据迁移到MySQL
2019-04-27
XStream xml与javabean之间的互转
2019-04-27
Android应用构建:10:使用sdkmanager管理sdk
2019-04-27
Kubernetes基础:MacOS上设定Dashboard
2019-04-27
#力扣 MySQL:183. 从不订购的客户 @FDDLC
2019-04-27
#力扣 MySQL196. 删除重复的电子邮箱 @FDDLC
2019-04-27
Seekbar 属性 记录
2019-04-27
textview设置独特字颜色和背景颜色
2019-04-27
背景+带边框(圆角)的textview怎么设置
2019-04-27
第二技能
2019-04-27
算法的设计
2019-04-27
linux c : get curent tty info
2019-04-27
JAVA Freemarker(9)---常见语法大全
2019-04-27
Java MyBatis(1)--- Generator 详解
2019-04-27
Java MyBatis(2)--- generatorConfig.xml详解与运行
2019-04-27