QTreeWidget系列--QTreeWidgetItem可随意移动(拖拽),更换父亲节点

方法分如下两步:

第一步,在datatree类(继承自qtreewidget)的构造函数中设置这棵树具有如下两种特征:

setDefaultDropAction(Qt::MoveAction);

setDragDropMode(QAbstractItemView::DragDrop);

第二步,重写 startdrag()函数,在里面写上如下代码:

void CDataTree::startDrag(Qt::DropActions /*supportedActions*/)

{

QMimeData *mimeData = new QMimeData;

mimeData->setText(“fasfas”);

QDrag *drag = new QDrag((QWidget*)(this));

drag->setMimeData(mimeData);

drag->exec(Qt::MoveAction);//注意这里一定要是MoveAction

}

时间: 2024-10-10 22:42:04

QTreeWidget系列--QTreeWidgetItem可随意移动(拖拽),更换父亲节点的相关文章

JS组件系列——Bootstrap Table 表格行拖拽

原文:JS组件系列--Bootstrap Table 表格行拖拽 前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到一个需求,说是两种不同状态的订单之间要实现插单的效果,页面上呈现方式是:左右两个Table,左边Table里面是状态为1的订单,右边Table里面是状态为2订单,左边Table里面的行数据拖动到右边Table里面指定行的位置,拖动完成

ztree使用系列四(ztree实现同级拖拽排序并将排序结果保存数据库)

ztree这个系列的最后一篇,也是ztree功能强大的体现之一--排序功能.ztree可以实现所有节点之间随意的拖拽排序功能,我这里根据需要实现了只允许同级之间随意拖拽排序,其实原理都一样,只是范围缩小了一些,多了一些判断而已.下面是每一层的代码,还是采取只贴出功能代码,因为这个拖拽排序功能我感觉很不错,所以单独拿出一篇博客来展示,也方便理解. Jsp页面实现功能的js代码如下: //拖拽前执行 var dragId; function beforeDrag(treeId, treeNodes)

如何构建逻辑清晰的可拖拽树的数据结构

在为知笔记上的每日计划已经有好几天没有写实际内容了,抓狂脸.时间真是过得超级快呀,这几天双十一,疯狂的看喜欢的东西和看快递.其实并不是为了双十一降价而买东西,而是近来本来就有买东西的打算,而且撞到了双十一前,那就干脆放购物车里好了,还有就是半年没见降价的零食也打折啦啦啦~~^_^.好喜欢双十一结束后淘宝的宣传片<再见双十一>,接下来的这个星期,就静静的等待幸福来敲门~ 言归正传,今天来分享一下关于如何构建数据结构使得页面逻辑更为清晰的思路. 事情的起因是这样的,boss安排我做一个列表拖拽页面

HT for Web列表和3D拓扑组件的拖拽应用

很多可视化编辑器都或多或少有一些拖拽功能,比如从一个List列表中拖拽一个节点到拓扑组件上进行建模,并且在拖拽的过程中鼠标位置下会附带一个被拖拽节点的缩略图,那么今天我们就来实现这样的拖拽效果. 首先我们需要创建一个ListView列表,在列表中加入图片信息,让List列表不那么单调,先来看看效果图. 接下来我们一步一步来是想这个ListView列表,先来解决下数据,在这里我就列举一两个: var products = [ { ProductId : 1, ProductName : "Chai

一步一步实现JS拖拽插件

js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠标 3.拖拽元素到一定位置,放开鼠标 这里的过程涉及到三个dom事件:onmousedown,onmousemove,onmouseup.所以拖拽的基本思路就是: 1.用鼠标点击被拖拽的元素触发onmousedown (1)设置当前元素的可拖拽为true,表示可以拖拽 (2)记录当前鼠标的坐标x,y

Jquery 可拖拽的Ztree

比较懒,就只贴关键代码吧,自己把有用的属性全部打印出来了,也加了不少注释. 保存后涉及到的排序问题,刷新问题还未涉及到,后面有的话再加. 1 $.fn.zTree.init($("#ztree"), { 2 data: { 3 simpleData: { 4 enable: true 5 } 6 }, 7 view:{ 8 selectedMulti :false 9 }, 10 edit: { //此属性添加后,树才可以被拖拽 11 enable: true, 12 showRemo

Jquery easyui treegrid实现树形表格的行拖拽

前几天修改了系统的一个功能——实现树形列列表的行拖拽,以达到排序的目的.现在基本上功能实现,现做一个简单的总结. 1.拿到这个直接网上搜,有好多,但是看了后都觉得不是太复杂就是些不是特别想看的例子,自己太懒(对自己不是很熟悉的东西是不愿意第一去看的).结果选择良久,还是jquery easyui treegrid这个例子自己看起来比较熟悉.于是就专心研究了,从官方网站http://www.jeasyui.net/下载了demo,开始研读.先把jsp页面一些代码贴出 <link rel="s

浅谈DevExpress&lt;四&gt;:TreeList中的拖拽功能

本篇要实现的目标,简单来说就是把一个treelist的节点用鼠标拖到另外的节点(自身或其他的listview)上,如下图: 1  2  3  首先,在窗口中拉入两个listview,第一个创建三列(上),第二个创建两列(下),如下图: 为第一个listview创建一些节点: 定义一个取得拖拽对象中节点的方法: private TreeListNode GetDragNode(IDataObject data) { return (TreeListNode)data.GetData(typeof(

文件拖拽

$(function() { drag.init('divall'); }); var drag = { class_name: null, //允许放置的容器 permitDrag: false, //是否允许移动标识 _x: 0, //节点x坐标 _y: 0, //节点y坐标 _left: 0, //光标与节点坐标的距离 _top: 0, //光标与节点坐标的距离 old_elm: null, //拖拽原节点 tmp_elm: null, //跟随光标移动的临时节点 new_elm: nul