解决PyQt5的tableWidget数据行不能完全删除问题
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]
#先获得总行数 rowPosition
rowPosition = self.tablewidget.rowCount()
#这句是关键! range(0, rowPosition)[::-1] 逆序循环
for rP in range(0, rowPosition)[::-1]:
self.tablewidget.removeRow(rP)
OK了

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:156
阅读量:150
阅读量:53
阅读量:181
阅读量:160