Qt 多选表,无需选择鼠标拖动

Qt 多选表,无需选择鼠标拖动,qt,qtableview,qabstractitemview,qitemselectionmodel,Qt,Qtableview,Qabstractitemview,Qitemselectionmodel,我希望使用qabstractemview,它只允许通过ctrl按钮切换进行多项选择。我不能使用qabstractemview::ExtandedSelection,因为它还允许通过在多个项目上拖动鼠标来选择它们。我假设您使用的是QTableView 您可以覆盖QTableView,然后巧妙地使用mouseMoveEvent,以确保用户不能通过拖动进行多项选择 如果用户在按下鼠标左键的情况下进入mouseMoveEvent,您可以选择在不将事件传递给QTableView的情况下吃掉事件,这样将消除

我希望使用
qabstractemview
,它只允许通过
ctrl
按钮切换进行多项选择。我不能使用
qabstractemview::ExtandedSelection
,因为它还允许通过在多个项目上拖动鼠标来选择它们。

我假设您使用的是
QTableView
您可以覆盖
QTableView
,然后巧妙地使用
mouseMoveEvent
,以确保用户不能通过拖动进行多项选择

如果用户在按下鼠标左键的情况下进入
mouseMoveEvent
,您可以选择在不将事件传递给
QTableView
的情况下吃掉事件,这样将消除多次选择的可能性

e、 g

这可能适用于您,您可能还必须在
mouseMoveEvent
中小心,当您在上面对mousePressEvent执行操作时,您也必须对
mousereleasevent
执行同样的操作

虽然这只是一个理论,但应该是可行的

void
TableView::mouseMoveEvent( QMouseEvent * inEvent )
{
// Deliberately commented to not to pass this event to parent to avoid multiple selection
// QTableView( inEvent );
inEvent->accept();
}