• 6351阅读
  • 4回复

[提问]请问,qt中的TablieWidget如何删除选中的多行啊? [复制链接]

上一主题 下一主题
离线xbb8765
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-13
关键词: 求助
就是选中的行号没有规律可言,任意选的,怎样一次性删除多行啊?
离线shiziyang

只看该作者 1楼 发表于: 2012-12-13
不是有QTableWidget::selectedItems ()和QTableWidget::selectedRanges ()的接口吗?得到后一条条删就好了
离线xbb8765
只看该作者 2楼 发表于: 2012-12-13
怎么做呀?我是用removeRow删除行号来的,我原先用Qlist <int>row,去除掉重复的后得到的行号列表,结果发现任意选时,行号没有规律,不知道有没有可能在加的时候直接排好序,最好写下代码。谢谢了
离线shiziyang

只看该作者 3楼 发表于: 2012-12-14
先用QTableWidget::selectedRanges ()返回QTableWidgetSelectionRange对象的list,每个QTableWidgetSelectionRange对象的topRow和bottomRow间 的范围就是你选的行号,比如你连续选择了2,3,4,6,7行,那么一般list里会得到两个对象,一个的topRow为2,bottomRow为4,另一个的top和bottom为6和7,你可以把行号放到一个list里,然后排一下序,用qt自己的排序方法或自己写,我就是自己写冒泡的,很简单。然后你可以通过排好序的行号list手动从最后面开始一行行删除,不要从最前面开始,否则计数会乱掉。
离线xbb8765
只看该作者 4楼 发表于: 2012-12-14
嗯,知道了,谢谢你呀
快速回复
限100 字节
 
上一个 下一个