Qt表格的上移下移操作
1. 功能描述
在开发过程中,经常需要用到表格来处理数据,因此避免不了对表格进行一些操作,如清空、添加行、删除行、上移行、下移行等等,如下图。

其中,前三种操作较为简单,这里不做介绍,本文仅对上移行和下移行操作进行介绍。
2.代码实现
上移行操作的实现步骤主要为:(1)在选中行前插入一行;(2)将选中行中的内容写入新插入的行;(3)删除选中的行;(4)将新插入的行设置为选中。具体实现代码为
//步骤1 _ui->tableWidget->insertRow(rowi - 1); //rowi为选中行的索引 //步骤2 for (int i = 0; i < _ui->tableWidget->columnCount(); ++i) { _ui->tableWidget->setItem(rowi - 1, i, new QTableWidgetItem(_ui->tableWidget->item(rowi + 1, i)->text())); } //步骤3 _ui->tableWidget->removeRow(rowi + 1); //步骤4 _ui->tableWidget->selectRow(rowi - 1);
下移行操作的实现步骤主要为:(1)在选中行后两行插入一行;(2)将选中行中的内容写入新插入的行;(3)删除选中的行;(4)将新插入的行设置为选中。具体实现代码为
//步骤1 _ui->tableWidget->insertRow(rowi + 2); //rowi为选中行的索引 //步骤2 for (int i = 0; i < _ui->tableWidget->columnCount(); ++i) { _ui->tableWidget->setItem(rowi +2 , i, new QTableWidgetItem(_ui->tableWidget->item(rowi, i)->text())); } //步骤3 _ui->tableWidget->removeRow(rowi); //步骤4 _ui->tableWidget->selectRow(rowi + 1);
可以看出,上移行和下移行操作仅有第一步不一样,后续步骤均一样。需要注意的是,虽然步骤一样,但是表格行索引的增减量不一样,如步骤3中上移行移除的是rowi+1,而下移行移除的是rowi。
此外,需要声明的是,以上介绍的方法只是许多方法中的一种,各位同行在开发过程中可以探索或选择其他更多的方法。
3.实现效果

浙公网安备 33010602011771号