如何从QTable Widget中删除多行?
答
如果要删除表末尾的一些行,可以尝试使用setRowCount(int row)。
我一直在寻找一种方法,可以从表格中不同位置的多个选定行中移除。
我结束了从底部遍历我选择的列表以删除我的表。
答
QList<QTableWidgetItem*> itemList = widget->selectedItems();
for(int i = 0; i < itemList.size(); i++) {
widget->removeCellWidget(itemList.at(i)->row(), itemList.at(i)->column());
}
答
也许这可以帮助:
QList<QTableWidgetItem*> selected_itms = ur_table->selectedItems();
while(!selected_itms.isEmpty())
{
QTableWidgetItem *itm = selected_itms.at(0);
ur_table->removeRow(itm->row());
selected_itms = ui.tblw_entries->selectedItems();
}
答
您可以一次删除多个项目,则提示,是开始从底部删除行。我很抱歉,我不是VS2008开发者,但是这个解决方案可以很容易地转换成VS2008代码。这里是Python代码。对不起,迟到的回应:)
# Delete the selected mytable lines
deleteRows(self.mytable.selectionModel().selectedRows())
# DeleteRows function
def deleteRows(self, rows):
# Get all row index
indexes = []
for row in rows:
indexes.append(row.row())
# Reverse sort rows indexes
indexes = sorted(indexes, reverse=True)
# Delete rows
for rowidx in indexes:
self.mytable.removeRow(rowidx)
我不想从底部删除。我想删除从任何地方选择的多行。 – joki 2012-01-18 09:25:34