表格QTableWidget 移动行功能函数
移动表格中的行,该功能函数实现指定行移动到目的行的功能。
void moveRow( QTableWidget *pTable, int nFrom, int nTo )
{
if( pTable == NULL ) {
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 ){ // Up
nFromRow = nFrom + 1;
this->insertRow(pTable, nTo);
}else { // Down
nInsertRow = nTo + 1;
this->insertRow(pTable, nInsertRow);
}
this->copyRow( pTable, nFromRow, nInsertRow );
this->removeRow( pTable, nFromRow ); //删除旧行信息
// 选择之前移动的行
pTable->selectRow( nInsertRow );
pTable->setCurrentCell(nTo, nColCur);
}