1

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

4

1 回答 1

2

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

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

例如

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

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

于 2017-08-10T13:21:00.207 回答