Qtグラフィックスビューで選択を「ロック」して、クリックを無効にすることは可能ですか?
現在、シーンはさまざまな状態にある可能性があり、一部の状態では、クリックが発生しても選択が変更されません。
mousePressEvent(..)
イベントを無視するために、シーンに接続されたビューで を再実装します。
void MyView::mousePressEvent(QMouseEvent* event)
{
if ( ignoreClickFlag && ( dragMode() == QGraphicsView::RubberBandDrag ||
items( event->pos() ).size() ) ) {
event->accept();
return;
}
QGraphicsView::mousePressEvent( event );
}
MyView::ignoreClickFlag
スロットに設定できるただの bool メンバーです。
したがって、無視モードがオンで、ビューがラバー バンド ドラッグ モードの場合、および/またはカーソルの下にノードがある場合、クリックは無視されます。別の言い方をすると、ユーザーが選択ドラッグを実行できる場合、および/またはカーソルの下にアイテムがある場合、クリックは無視されますが、ビューがパン ドラッグ モードでカーソルの下にアイテムがない場合は無視されます。