• 11900阅读
  • 5回复

有没有函数可以直接删除QTableWidget里面的所有行啊? [复制链接]

上一主题 下一主题
离线颜颜
 
只看楼主 倒序阅读 楼主  发表于: 2011-07-25
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-07-26) —
关键词: QTableWidget求助
没有函数可以直接删除QTableWidget里面的所有行啊?
我用QTableWidget::rowCount()函数获取总行数,然后用QTableWidget::removeRow(int row)循环删除,怎么总是会有一些行删除不了啊?
离线abcdlcq

只看该作者 1楼 发表于: 2011-07-25
循环删除从后往前删,clear ()、setRowCount ( 0 )不知道可不可以
离线颜颜
只看该作者 2楼 发表于: 2011-07-25
回 1楼(abcdlcq) 的帖子
clear()函数只是删除格子里面的内容的。
我试了循环从后往前删除,可以删除了!谢谢你!  :)    
离线idiots
只看该作者 3楼 发表于: 2011-08-26
也可以不从后边删掉,原因之所以从前面删不掉,是因为当你删除一行的时候,后面的还没删除的行会填补上来,另外还要注意列表的总行数也是在变化的,for循环里的判断条件要注意。这样就导致刚才删除的index下标,又有新的行填补,所以总有一些不能够删除。从后往前面删就不会存在这样子的问题了。

建议:删除list等等对象内容时候,从后往前比较好。思路简单清晰,不用估计list等内部机制。
离线wangjiazhan

只看该作者 4楼 发表于: 2011-10-10
学习了,刚刚也碰到这个问题、、
离线渡世白玉

只看该作者 5楼 发表于: 2013-04-17
回 1楼(abcdlcq) 的帖子
行、、好像不会存在内存泄漏、、、、直接setRowCount ( 0 )好像也会释放内存
快速回复
限100 字节
 
上一个 下一个