QTableWidget由几个Selection Modi组成,可以使用方法
进行选择setSelectionMode (QAbstractItemView::SelectionMode mode)
给定的modi都不符合我想要的交互选择类型。我想实现一种选择模式,当用户在一个表格单元格中单击,然后在另一个表格单元格中移动+单击时,结果选择不是这两者之间的列和行的总和,而是从第一个单击的单元格开始,沿着读取方向逐行进入,以第二次单击结束。我希望我明确表达我想做的事情。
我是否需要覆盖QItemSelectionModel或QTableWidget? 用户点击选择的位置在哪里处理?
答案 0 :(得分:2)
您需要创建QItemSelectionModel的后代并重新实现select
。
virtual void select(const QModelIndex & index, QItemSelectionModel::SelectionFlags command)
virtual void select(const QItemSelection & selection, QItemSelectionModel::SelectionFlags command)
重新实现select
时,您可以使用不同的参数调用QItemSelectionModel::select
以获得所需的结果。
然后使用QTableWidget
将选择模型的实例分配给setItemSelectionModel
。