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;
}
01-01 07:59