我想实现在QTableWidget中实现多选功能,通过QTableWidget属性设置可以设置SelectMode和SelectBehavior。实现在操作上选中多行。但我要得到选中的多行的行序列(注:我是以一行为一个对象看待的)。
1 通过QTableWidget自带的函数selectItem()可以得到选中的QTableWidgetItem。
2 通过函数int row(const QTableWidgetItem*)返回一个字段所在行。
通过方法1返回的是所有选中字段。如我的QTableWidget中又3个字段。然后我选中了3行。那么就会返回9个字段。也就是9个QTableWidgetItem。但我是只向返回3个。
通过方法2可以返回一个QTableWidgetItem所在的行序号。
于是目前我能想到的方法就是结合1和2两种方法来实现。通过方法1得到多选的所有QTableWidgetItem。然后对每个QTableWidgetItem执行方法2,得到所有序列,再对这些序列去重处理,得到唯一不重复序号列。这就达到了多选返回多个行序列的目的。
以上就是我的方法,但感觉太复杂,所以拿出来讨论。如果哪位知道有其他的方法,麻烦告知。谢谢!