• 8724阅读
  • 3回复

怎么判断QTableView中是否有选中项? [复制链接]

上一主题 下一主题
离线justwake
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-04
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-01-05) —
关键词: QTableView事件
怎么判断QTableView中是否有选中项呢?   判断操作应该放到什么位置处理?

如果用clicked 信号  这样只能当单击QTableView单击某一项的时候会触发   但是如果单击QTableView外,失去选中项,却不能触发.

功能实现,就是当QTableView中有选中项,Enable一个按钮  如果QTableView中没有选中项  就Disable
问题是     判断操作应该使用什么处理?  以及怎么判断QTableView中是否有选中项目(我用currentIndex 没有成功?)

眼下准备测试QTableView的focus事件是否能够成功,    希望大牛  给指导下!!!

离线XChinux

只看该作者 1楼 发表于: 2013-01-04
看看selectionModel()函数。

用它返回的对象(QItemSelectionModel)的selectionChanged()信号,可以处理你说的需求。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线justwake

只看该作者 2楼 发表于: 2013-01-05
回 1楼(XChinux) 的帖子
还真没注意这个类   (刚学)
QItemSelectionModel *selectionModel = table->selectionModel();

晚上回去试下!
顺便问下大牛,如果为tableView设置事件过滤   然后在过滤鼠标clickEvent
然后配合QItemSelectionModel  的hasSelection进行操作
这样是否能行?
现在没有测试环境,晚上回去才有    只是顺便问下!!  
离线justwake

只看该作者 3楼 发表于: 2013-01-05
OK  搞定了   谢谢总版主大大!
首先通过QItemSelectionModel绑定selectionChanged信号  
处理槽中通过QItemSelectionModel当中的hasSelection方法判断是否有选择项
后期处理操作 通过currentIndex方法  获取当前选中项

哪个事件过滤  我测试了下 貌似不行 不管是绑定QItemSelectionModel还是tableView  貌似都不行....
快速回复
限100 字节
 
上一个 下一个