关于QTableWidget中单元格拖拽实现
无重写函数实现单元格拖拽
- 缺点:需要额外设置一个记录拖拽起始行的私有成员变量和拖拽列的初始QList数据成员。
- 优点:无需重构函数,对于QT中信号和槽的灵活运用
信号和槽
// signal
void cellPressed(int row, int column) // 传递拖拽起始行列
// slots
void StartDrag(int row, int col)
{
if (col == LAYERFLDCOL) // 确保拖拽列为可拖拽列
{
m_rowFrom= row; // 记录拖拽起始行
}
else
{
m_rowFrom = -1;
}
}
// signal
void cellChanged(int row, int column) // 传递拖拽后改变行列
// slots
void DropEnd(int row, int col)
{
if (col == LAYERFLDCOL && m_rowFrom != -1) // 判断Drop的列是否为可拖拽列
{
QgsField fldTo = m_tmpFld.at(row); // 根据初始数据QList得到最终单元格的数据
QString changeText = fldTo.name(); // 记录
m_tmpFld.replace(row, ui->tableWidget->item(m_rowFrom, LAYERFLDCOL)->text()); // 交换初始数据,用于实时跟进拖拽之后的列中数据,即对应的行即为QList中数据的索引
m_tmpFld.replace(m_rowFrom, changeText);
ui->tableWidget->item(m_rowFrom, LAYERFLDCOL)->setText(changeText); // 更新起始行列中单元格的数据
}
}
Ps: 来自一个菜鸟的无奈之举。
关于QTableWidget中单元格拖拽实现的更多相关文章
- C#如何实现DataGridView单元格拖拽
参考: http://www.cnblogs.com/michaelxu/archive/2009/09/27/1574905.html
- html table中单元格自动换行
table中单元格自动换行样式: table-layout: fixed; word-wrap: break-word; table-layout 可能的值(IE不支持inherit属性) 值 描 ...
- python读取excel中单元格的内容返回的5种类型
(1) 读取单个sheetname的内容. 此部分转自:https://www.cnblogs.com/xxiong1031/p/7069006.html python读取excel中单元格的内容返回 ...
- 关于POI 中单元格背景色设置(转)
关于POI 中单元格背景色设置(转) csdn 中找到了用Apache POI 实现单元格背景色的小例子 我用了JDK6 + POI 3.17 ,调试中报错 最终将 CellStyle.SOLID ...
- HTML5拖拽表格中单元格间的数据库
效果图:
- excel中单元格计算
首先,得明确excel中相对引用和绝对引用的概念,这里$符号起着关键作用,当在一个行或列的指示符前面加$则表示绝对引用,否则相对引用,具体: 1.相对引用,复制公式时地址跟着发生变化,如C1单元格有公 ...
- IE 中单元格的 colspan 属性在某些情况下会影响 TABLE 元素的自动布局
今天在写一个jsp页面时,遇到一个如下的问题:在一个table中写了如下内容,table中定义了4列,在firefox中能正常显示,而在ie8中,显示不正常, 如下如图1:第二,三,四列宽度发生变化, ...
- Excel 2013中单元格添加下拉列表的方法
使用Excel录入数据的时候我们通常使用下拉列表来限定输入的数据,这样录入数据就很少发生错误了.Excel 2013较以前的版本发生了很大的变化,那么在Excel 2013是如何添加下拉列表的呢? 下 ...
- 【原创】有关Silverlight中“DataGrid中单元格动态绑定ComboBox单击时数据项莫名被清除 ”的解决方案及思路。
今天上班遇到一个很古怪的问题,搞了半天愣是没找到原因.是这样的,在Datagrid中有绑定一个ComboBox列,其不包含在 model数据中,而是单独在LoadingRow事件中去 从数据库拿数据绑 ...
随机推荐
- MBR分区表为什么最大只能识别2TB硬盘容量
1. 前言 最近公司的服务器硬盘坏了,需要换一个新的硬盘,容量是2TB,用的fdisk进行分区,期间搜索分区工具,看到了关于MBR(Master Boot Record)与GPT(GUID parti ...
- Git的使用上传与下载github
下载git 下载git工具是第一步 Git的使用上传与下载 创建本地仓库 在选择的文件夹中鼠标右键打开git Bash here ,在命令行输入git init创建该文件夹的本地仓库 将文件夹文件提交 ...
- js上 三、数据类型
3.1.什么是数据类型 a. 什么是数据类型? 想从生活中出发: 考验智商的时刻到了: 1(只)+1(只)=1(双) 3(天)+4(天)=1(周) 5(月)+7(月)=1(年) 4(时)+9(时)=1 ...
- react第十四单元(react路由-react路由的跳转以及路由信息)
第十四单元(react路由-react路由的跳转以及路由信息) #课程目标 理解前端单页面应用与多页面应用的优缺点 理解react路由是前端单页面应用的核心 会使用react路由配置前端单页面应用框架 ...
- go-slice实现的使用和基本原理
目录 摘要 Slice数据结构 使用make创建Slice 使用数组创建Slice Slice 扩容 Slice Copy 特殊切片 总结 参考 你的鼓励也是我创作的动力 Posted by 微博@Y ...
- ADF 第六篇:Copy Data Activity详解
在Azure 数据工程中,可以使用Copy Data 活动把数据从on-premises 或云中复制到其他存储中.Copy Data 活动必须在一个IR(Integration Runtime)上运行 ...
- Android虚拟机Genymotion的安装与使用
1.首先官网下载genymotion-2.12.2-vbox包,首选第一个带有box,点击安装 2.安装完毕选择自己要用的安卓系统,建议选择安卓4.0以上全部 3.启动打开虚拟机 4.安装外部APP, ...
- Linq基础知识
开发人员不需要关心将要访问的是关系数据库还是XML数据,或是远程对象,它都采用同样的访问方式. Linq包含一系列的查询技术,其中Linq到对象是对内存进行操作,LINQ到SQL是对数据库的操作,LI ...
- 老板居然让我在Java项目中“造假”
1. 前言 老板说,明天甲方要来看产品,你得造点数据,而且数据必须是"真"的,演示效果要好看一些,这样他才会买我们的产品,我好明年给你换个嫂子.一般开发接到这种过分要求都不会很乐意 ...
- Python基础(上篇)
本篇文章主要内容:变量.注释.运算符.关键字.数据类型. 在入手变量之前我们先来看看经典的编程语句 → hello world 在python3中输出到控制台的函数是print() print(&qu ...