编程实践: 忽略在QTableView上操作Tab按键
问题提出:
在一个项目中,想实现在TableView中进行多选,然后离开TableView后,TableView保持多选状态不变,但实际发现当在TableView下按下TAB键,多选状态会被取消。SO,这里要解决的问题就是:如何实现在按下TAB离开TableView后,TableView多选状态保持不变。图示如下:
思路:
可选方法:
(1)在QTableView的上一层Widget组件上加入事件过滤器(Event Filter),然后在事件过滤器中捕捉到QTableView对象的TAB按键事件,然后直接返回,而不象正常的编程实践那样返回给基类处理。
(2)其它,由于不是今次编码所做的工作,不展开。
关键代码摘录:
在dialog.h中加入要重写的事件过滤方法声明:
在dialog.cpp中加入事件过滤方法定义:
在dialog.cpp的构造函数中给tableView部件注册事件过滤器: