2017-08-10 75 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爲好。

雖然這只是一個理論,但應該工作!