• 17863阅读
  • 4回复

QTableWidget 选择多行实现多选功能 [复制链接]

上一主题 下一主题
离线dinotiger510
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-19
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-08-04) —
我想实现在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,得到所有序列,再对这些序列去重处理,得到唯一不重复序号列。这就达到了多选返回多个行序列的目的。

以上就是我的方法,但感觉太复杂,所以拿出来讨论。如果哪位知道有其他的方法,麻烦告知。谢谢!
离线dinotiger510
只看该作者 1楼 发表于: 2009-10-19
先自己顶一个。在线等待!
离线XChinux

只看该作者 2楼 发表于: 2009-10-19
一、推荐使用QTableView
二、多选的方式,可以使用selectionModel(即多行高亮选择),也可以使用首行关于格加复选框进行选择的方式
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线wangweiqi23
只看该作者 3楼 发表于: 2011-08-04
qtableview  首列如何加图标或者复选框??
离线XChinux

只看该作者 4楼 发表于: 2011-08-04
看看model 的data()方法。如果用的是QStandardItemModel的话,可以直接用QStandardItem的相关方法设置。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个