解决PyQt5的tableWidget数据行不能完全删除问题

2025-10-25 17:55:51

1、在写等额本息程序中用到tableWidget控件,用来存放数据

清理数据行采用

rowPosition = self.tablewidget.rowCount()for rP in range(0, rowPosition):    self.tablewidget.removeRow(rP)

实现,但是问题出现了

解决PyQt5的tableWidget数据行不能完全删除问题

2、for rP in range(0, rowPosition):   self.tablewidget.removeRow(rP)

循环删除,tablewidget 理论上看没问题

但实际上是能清除掉一部分,总是有一部分不能正确清除

解决PyQt5的tableWidget数据行不能完全删除问题

3、经过仔细研究测试。解决方案如下:

采用逆序循环,不能用正序循环!

#这句是关键! range(0, rowPosition)[::-1] 逆序循环

for rP in range(0, rowPosition)[::-1]:      

     。。。

解决PyQt5的tableWidget数据行不能完全删除问题

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了

解决PyQt5的tableWidget数据行不能完全删除问题

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