1

是否可以在 Qt 图形视图中“锁定”选择,使点击无效?

我的场景当前可以处于不同的状态,并且在某些状态下,即使点击发生,选择也不应该改变。

4

1 回答 1

4

mousePressEvent(..)在连接到场景的视图中重新实现以忽略事件。

void MyView::mousePressEvent(QMouseEvent* event)
{
    if ( ignoreClickFlag && ( dragMode() == QGraphicsView::RubberBandDrag ||
                              items( event->pos() ).size() ) ) {
        event->accept();
        return;
    }

    QGraphicsView::mousePressEvent( event );
}

MyView::ignoreClickFlag只是一个布尔成员,您可以在插槽中设置。

因此,如果忽略模式打开,并且视图处于橡皮筋拖动模式和/或光标下有节点,则单击将被忽略。另一种说法是,如果用户可以执行选择拖动和/或光标下有项目,则忽略单击,但如果视图处于平移拖动模式并且光标下没有项目,则不会。

于 2013-02-25T23:26:24.657 回答