如何从QTableWidget中删除多行?

时间:2012-01-18 09:02:10

标签: visual-studio-2008 qt4

我想删除在QTableWidget中选择的多行。任何人都可以有任何想法吗?

4 个答案:

答案 0 :(得分:2)

您可以一次删除多个项目,提示,开始从底部删除行。对不起,我不是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)

答案 1 :(得分:0)

如果要删除表末尾的某些行,可以尝试使用setRowCount(int row)。

我一直在寻找一种方法来删除表中不同位置的多个选定行。

我最终从底部迭代我选择的列表以删除我的表格。

答案 2 :(得分:0)

QList<QTableWidgetItem*> itemList = widget->selectedItems();
for(int i = 0; i < itemList.size(); i++) {
    widget->removeCellWidget(itemList.at(i)->row(), itemList.at(i)->column());
} 

答案 3 :(得分:-1)

也许这会有所帮助:

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();
}