1、前言
最近要用QT开发项目,对QT不是很熟,就根据网上的查到的知识和自己的摸索,将一些经验和知识记录下来。方便自己后续查找。
这个博客主要是QTableWidget的添加行和删除空行。
2、QTableWidget的添加行
int row = ui->jiwuTableWidget->rowCount();
int column = ui->jiwuTableWidget->columnCount();
ui->jiwuTableWidget->insertRow(row);
//下面是为了删除时判断是不是空行,当然如何判断null可能也是的,我可以试
for (int i = 0; i < column; i++)
{
QTableWidgetItem *item = new QTableWidgetItem();
item->setText("");
ui->jiwuTableWidget->setItem(row, i, item);
}
3、删除行
QList<QTableWidgetItem*>itemList = ui->jiwuTableWidget->selectedItems();
std::vector<int> rowItemIndex; //保存选中行的行号
for (int i = 0; i < itemList.count(); i++)
{
rowItemIndex.push_back(itemList.at(i)->row());//存储选中的行
}
std::sort(rowItemIndex.begin(), rowItemIndex.end(), Comp);//将行号从大到小排序
rowItemIndex.erase(std::unique(rowItemIndex.begin(), rowItemIndex.end()), rowItemIndex.end());//去除重复的行号
for (int k = 0; k < rowItemIndex.size(); k++)
{
ui->jiwuTableWidget->removeRow(rowItemIndex[k]);//删除行
}
这里用对Comp
其声明为:
using std::vector;
using std::sort;
static bool Comp(const int &a, const int &b);
其定义为:
bool Comp(const int &a, const int &b)
{
return a > b;
}