我希望QAbstractItemView
允许仅使用ctrl
按钮切换多项选择。我无法使用QAbstractItemView::ExtandedSelection
,因为它还允许通过将鼠标拖过它们来选择多个项目。
答案 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
执行相同操作。
虽然这只是一个理论,但应该有效!