QTableWidget操作之上移,下移,删除

本文介绍了如何在QTableWidget中执行行的上移、下移和删除功能,对于Qt编程中的表格操作具有实用价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现对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());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值