QTableWidget中删除所有行操作。
int rowNum = fManageUser->manageUserWidget->rowCount();
for(int i = 0;i < rowNum;i++)
{
fManageUser->manageUserWidget->removeRow(i);
}
这样是不行的,如果这个QTableWidget 只有一行的话,是能删除成功的,如果不是则不能实现删除所有行的操作,,因为索引的问题,删除首行之后后面的行都上移,索引也跟着变化,
当你删除第一行的时候,第二行的索引就变成了第一行的索引,因为你把i++,删除操作的索引已经到后面去了,所以前面的行是删除不掉的。
可以这样做:
for(int i = 0;i < rowNum;i++)
{
fManageUser->manageUserWidget->removeRow(0);
}
或者 从后往前删除
for(int i = rowNum -1;i>=0 ;i--)
{
fManageUser->manageUserWidget->removeRow(i);
}
QTableView 中增加的model可以能排序操作。
_model = new OnlineDeviceModel(this);
if (_model)
{
QSortFilterProxyModel* proxy = new QSortFilterProxyModel(this);
proxy->setSourceModel(_model);
ui->tableView->setModel(proxy);
}
ui->tableView->setSortingEnabled(true);