是否可以在 Qt 图形视图中“锁定”选择,使点击无效?
我的场景当前可以处于不同的状态,并且在某些状态下,即使点击发生,选择也不应该改变。
mousePressEvent(..)
在连接到场景的视图中重新实现以忽略事件。
void MyView::mousePressEvent(QMouseEvent* event)
{
if ( ignoreClickFlag && ( dragMode() == QGraphicsView::RubberBandDrag ||
items( event->pos() ).size() ) ) {
event->accept();
return;
}
QGraphicsView::mousePressEvent( event );
}
MyView::ignoreClickFlag
只是一个布尔成员,您可以在插槽中设置。
因此,如果忽略模式打开,并且视图处于橡皮筋拖动模式和/或光标下有节点,则单击将被忽略。另一种说法是,如果用户可以执行选择拖动和/或光标下有项目,则忽略单击,但如果视图处于平移拖动模式并且光标下没有项目,则不会。