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スロットに設定できるただの bool メンバーです。

したがって、無視モードがオンで、ビューがラバー バンド ドラッグ モードの場合、および/またはカーソルの下にノードがある場合、クリックは無視されます。別の言い方をすると、ユーザーが選択ドラッグを実行できる場合、および/またはカーソルの下にアイテムがある場合、クリックは無視されますが、ビューがパン ドラッグ モードでカーソルの下にアイテムがない場合は無視されます。

于 2013-02-25T23:26:24.657 に答える