目录

1.简介
2.源码
3.效果图


源码下载地址
https://download.csdn.net/download/Redboy_Crazy/12273652

1.简介

实例QT程序:实现QTableWidget表格中行的上移/下移的功能。

2.源码

  • widget.h
  • widget.cpp
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {class Widget;
}class QTableWidget;class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();private slots:void on_btnUp_clicked();void on_btnDown_clicked();private:// 移动行void moveRow( QTableWidget *pTable, int nFrom, int nTo );// 复制行void copyRow( QTableWidget *pTable, int nFrom, int nTo );private:Ui::Widget *ui;
};#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->tabWdg->selectRow(0);
}Widget::~Widget()
{delete ui;
}void Widget::on_btnUp_clicked()
{int nCurRow = ui->tabWdg->currentRow();moveRow(ui->tabWdg, nCurRow, nCurRow-1);
}void Widget::on_btnDown_clicked()
{int nCurRow = ui->tabWdg->currentRow();moveRow(ui->tabWdg, nCurRow, nCurRow+1);
}void Widget::copyRow( QTableWidget *pTable, int nFrom, int nTo )
{int nColCount = pTable->columnCount();for(int col=0; col<nColCount; col++){QString text = pTable->item(nFrom, col)->text();QTableWidgetItem *it = new QTableWidgetItem;it->setText(text);pTable->setItem(nTo, col, it);}
}void Widget::moveRow( QTableWidget *pTable, int nFrom, int nTo )
{if( pTable == nullptr ) {return;}if( nFrom == nTo ) {return;}if( nFrom < 0 || nTo < 0 ) {return;}int nRowCount = pTable->rowCount();if( nFrom >= nRowCount  || nTo >= nRowCount ) return;int nColCur = 0;nColCur = pTable->currentColumn();QTableWidgetItem *itCur = pTable->currentItem();if( nullptr != itCur ){nColCur = itCur->column();}int nFromRow = nFrom;int nInsertRow = nTo;if( nTo < nFrom ){  // UpnFromRow = nFrom + 1;pTable->insertRow(nTo);
//        this->insertRow(pTable, nTo);}else { // DownnInsertRow = nTo + 1;pTable->insertRow(nInsertRow);
//        this->insertRow(pTable, nInsertRow);}this->copyRow( pTable, nFromRow, nInsertRow );
//    this->removeRow( pTable, nFromRow );   //删除旧行信息pTable->removeRow(nFromRow);// 选择之前移动的行pTable->selectRow( nInsertRow );pTable->setCurrentCell(nTo, nColCur);
}

3.效果图


运行效果图


加油,向未来!GO~
Come on


实例QT程序 —— QTableWidget 表格行的上下移动相关推荐

  1. 实例QT程序 —— QTableView 表格行的上下移动

    目录 1.简介 2.源码 3.效果图 源码下载地址 https://download.csdn.net/download/Redboy_Crazy/12276410 1.简介 上一篇文章,介绍了实现Q ...

  2. qt程序使用多行linux命令,开发Qt应用程序的基本方法总结

    在开发Qt4应用程序时,有几种常见的做法. 1.全部采用手写代码,在命令行下完成编译和运行 这种方式是最基础.最基本的,使用它的感觉有点像练武术时的扎马步,一招一式非常清楚.它最锻炼开发者的技能,因为 ...

  3. Qt下QTableWidget 基本用法

    QTableWidget的基本设置 设置表头 ui->tableWidget->setColumnCount(11); ui->tableWidget->setRowCount ...

  4. PyQt5 技术篇-QTableWidget表格组件指定行的隐藏与显示控制实例演示,设置表格指定列的列宽方法

    def change_table(self):'''作用:通过取值框的值改变表格行数'''cols = self.spinBox.value()if(cols == 1):# 行隐藏self.tabl ...

  5. PyQt5 技术篇-设置QTableWidget表格组件默认值实例演示,如何获取QTableWidget表格组件里的值,获取表格的行数和列数

    self.tableWidget.setItem(0, 0, QTableWidgetItem("设置值的内容")) 可以设置指定单元格里的值. self.tableWidget. ...

  6. Qt QTableWidget表格控件的用法(非常详细)

    Qt QTableWidget表格控件的用法(非常详细) QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给 ...

  7. 命令行编译Qt程序(qmake+jom/Nmake/mingW)

    命令行编译Qt程序(qmake+jom/Nmake/mingW) 一.创建工程,生成以下几个文件 二.命令行编译 创建三个bat文件,分别使用以下三种方式编译 1.qmake+jom编译,使用wind ...

  8. 命令行下打包Qt程序

    命令行下打包Qt程序 上一节我们说了 命令行下编译Qt程序 https://blog.csdn.net/weixin_42837024/article/details/81945656 现在基于上次继 ...

  9. 几行代码实现c++/qt程序进程单例(文件锁)

    qt程序进程单例(文件锁的方法) 原理 通过锁定文件,直至程序退出解锁,那么当程序第二次打开的时候检测到文件是锁定的,则退出 使用qt文件锁的方法 请在main函数里面使用,不要单独封装函数,保证锁没 ...

最新文章

  1. 如何用javascript控制上传文件的大小
  2. 官宣!这些北京高校,去雄安!
  3. python tfidf特征变换_Python机器学习之“特征工程”
  4. CodeForces - 1459D Glass Half Spilled(dp)
  5. apache common-io.jar FileUtils
  6. SAP Spartacus B2B Unit page convertListItem方法的工作原理
  7. python json数据格式数组内元素递增赋值_利用Python实现JSON格式数据的编码与解码操作...
  8. jQuery得事件绑定
  9. 配置jupyter notebook到conda env虚拟环境里可运行
  10. Redis-数据结构01-压缩列表(ziplist)
  11. linux主备dns切换时间,linux下主从DNS配置相关知识(二)
  12. python3多进程执行循环_Python3 并发编程之多进程(一)
  13. 从高德地图获取城市地铁线路+站点
  14. 修改RAC中的私网地址导致CRS启动失败
  15. 检查linux中nginx是否已安装成功,linux服务下安装nginx 系统版本Ubuntu 18.04.4
  16. 如何确定一笔用户的BTC转入记录
  17. 关于笔记本真机装Linux连接WIFI并设置静态IP
  18. 7500 cpuz跑分 i5_为何i5 7500被人称为智商检测的cpu,但为什么还有这么多人去买?...
  19. 腹直肌整体(05):仰卧屈膝两头起
  20. thanks for your share

热门文章

  1. MYSQL相关知识总结
  2. js设置点击某地方input框不失焦
  3. linux怎么做路由跟踪_Linux 路由追踪命令:traceroute
  4. mysql+读取所有数据库_MySQL列出所有数据库
  5. 马上520了!!!js爱情表白树带给大家
  6. 服务器主板性能与家用,服务器主板和普通PC主板的区别
  7. 人工智能--生成对抗网络
  8. 《水文地质学基础》在线平时作业2
  9. 华为watch gt2 和苹果watch5有什么区别 哪个好
  10. 这70道算法题你都会的话,可以直接去字节跳动了!