Qt 多选表,无需选择鼠标拖动
我希望使用Qt 多选表,无需选择鼠标拖动,qt,qtableview,qabstractitemview,qitemselectionmodel,Qt,Qtableview,Qabstractitemview,Qitemselectionmodel,我希望使用qabstractemview,它只允许通过ctrl按钮切换进行多项选择。我不能使用qabstractemview::ExtandedSelection,因为它还允许通过在多个项目上拖动鼠标来选择它们。我假设您使用的是QTableView 您可以覆盖QTableView,然后巧妙地使用mouseMoveEvent,以确保用户不能通过拖动进行多项选择 如果用户在按下鼠标左键的情况下进入mouseMoveEvent,您可以选择在不将事件传递给QTableView的情况下吃掉事件,这样将消除
qabstractemview
,它只允许通过ctrl
按钮切换进行多项选择。我不能使用qabstractemview::ExtandedSelection
,因为它还允许通过在多个项目上拖动鼠标来选择它们。我假设您使用的是QTableView
您可以覆盖QTableView
,然后巧妙地使用mouseMoveEvent
,以确保用户不能通过拖动进行多项选择
如果用户在按下鼠标左键的情况下进入mouseMoveEvent
,您可以选择在不将事件传递给QTableView
的情况下吃掉事件,这样将消除多次选择的可能性
e、 g
这可能适用于您,您可能还必须在mouseMoveEvent
中小心,当您在上面对mousePressEvent执行操作时,您也必须对mousereleasevent
执行同样的操作
虽然这只是一个理论,但应该是可行的
void
TableView::mouseMoveEvent( QMouseEvent * inEvent )
{
// Deliberately commented to not to pass this event to parent to avoid multiple selection
// QTableView( inEvent );
inEvent->accept();
}