2017-08-10 32 views
0

我想要有QAbstractItemView,只允许用ctrl按钮切换多选项目。我不能使用QAbstractItemView::ExtandedSelection,因为它还允许通过将鼠标拖到它们上方来选择多个项目。多选表格,无需选择鼠标拖动

回答

1

我假设你使用的是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为好。

虽然这只是一个理论,但应该工作!

相关问题