实现对QTableWidget的上下移动,删除操作。
else if (pBtn == ui.pushButtonMoveUp)
{
int rows = ui.tableWidget->rowCount();
int columns = ui.tableWidget->columnCount();
int nCurrRow = ui.tableWidget->currentRow();
if (nCurrRow == 0)
{
return;
}
int nPrevRow = nCurrRow - 1;
QTableWidgetItem *CurrItem = new QTableWidgetItem;
QTableWidgetItem *PrevItem = new QTableWidgetItem;
CurrItem = ui.tableWidget->item(nCurrRow, 0);
PrevItem = ui.tableWidget->item(nPrevRow, 0);
QString CurrText = CurrItem->text();
QString PrevText = PrevItem->text();
QVector <QTableWidgetItem *> m_CurrItemVector;
QVector <QTableWidgetItem *> m_PrevItemVector;
for (int i = 1; i < columns; i++)
{
m_CurrItemVector.push_back(ui.tableWidget->takeItem(nCurrRow, i));
}
for (int i = 1; i < columns; i++)
{
m_PrevItemVector.push_back(ui.tableWidget->takeItem(nCurrRow, i));
}
for (int i = 1; i < columns; i++)
{
ui.tableWidget->setItem(nPrevRow, i, m_CurrItemVector[i - 1]);
}
for (int i = 1; i < columns; i++)
{
ui.tableWidget->setItem(nCurrRow, i, m_PrevItemVector[i - 1]);
}
ui.tableWidget->setCurrentCell(nPrevRow, 0);
CurrItem->setText(PrevText);
PrevItem->setText(CurrText);
}
else if (pBtn == ui.pushButtonMoveDown)
{
int rows = ui.tableWidget->rowCount();
int columns = ui.tableWidget->columnCount();
int nCurrRow = ui.tableWidget->currentRow();
if (nCurrRow == rows -1)
{
return;
}
int nNextRow = nCurrRow + 1;
QVector<QTableWidgetItem*>m_CurrItemVector;
QVector<QTableWidgetItem*>m_NextItemVector;
QTableWidgetItem *CurrItem = new QTableWidgetItem;
QTableWidgetItem *NextItem = new QTableWidgetItem;
CurrItem = ui.tableWidget->item(nCurrRow, 0);
NextItem = ui.tableWidget->item(nNextRow, 0);
QString CurrText = CurrItem->text();
QString NextText = NextItem->text();
for (int i = 1; i < columns; i++)
{
m_CurrItemVector.push_back(ui.tableWidget->takeItem(nCurrRow, i));
}
for (int i = 1; i < columns; i++)
{
m_NextItemVector.push_back(ui.tableWidget->takeItem(nNextRow, i));
}
for (int i = 1; i < columns; i++)
{
ui.tableWidget->setItem(nNextRow, i, m_CurrItemVector[i - 1]);
}
for (int i = 1; i < columns; i++)
{
ui.tableWidget->setItem(nCurrRow, i, m_NextItemVector[i - 1]);
}
ui.tableWidget->setCurrentCell(nNextRow, 0);
CurrItem->setText(NextText);
NextItem->setText(CurrText);
}
else if (pBtn == ui.pushButtonDel)
{
int currentrow = ui.tableWidget->currentRow();
if (currentrow<0)
{
return;
}
QTableWidgetItem *item = ui.tableWidget->currentItem();
ui.tableWidget->removeRow(item->row());
}