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.实现效果

posted @ 2022-09-17 15:17  搞界面的程序员  阅读(1128)  评论(0)    收藏  举报