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

时间:2017-08-10 11:33:00

标签: qt qtableview qabstractitemview qitemselectionmodel

我希望QAbstractItemView允许仅使用ctrl按钮切换多项选择。我无法使用QAbstractItemView::ExtandedSelection,因为它还允许通过将鼠标拖过它们来选择多个项目。

1 个答案:

答案 0 :(得分:1)

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

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

e.g。

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

这可能对您有用,您可能还需要注意mouseMoveEvent,当您对mousePressEvent执行上述操作时,您也必须对mouseReleaseEvent执行相同操作。

虽然这只是一个理论,但应该有效!