1、在写等额本息程序中用到tableWidget控件,用来存放数据清理数据行采用rowPosition = self.tablewidget.rowCount()for rP in range(0, rowPosition): self.tablewidget.removeRow(rP)实现,但是问题出现了
2、for rP in range(0, rowPosition): self.tablewidget.removeRow(rP)循环删除,tablewidget 理论上看没问题但实际上是能清除掉一部分,总是有一部分不能正确清除
3、经过仔细研究测试。解决方案如下:采用逆序循环,不能用正序循环!#这句是关键!range(0, rowPosition)[::-1] 逆序循环for rP in range(0, rowPosition)[::-1]: 。。。
4、小结:tablewidget控件循环删除已有行,要用逆序range(0, rowPosition拘七呷憎)[::-1]#先获得总行数 rowPositionrowPosition = se造婷用痃lf.tablewidget.rowCount()#这句是关键!range(0, rowPosition)[::-1] 逆序循环for rP in range(0, rowPosition)[::-1]: self.tablewidget.removeRow(rP)OK了