表格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);
}