私は自分自身のQGraphicsScene
嘘つきのサブクラスを持ってQGrapnhicsView
います (私はそれをオーバーライドしませんでした)。私のシーンは、いくつかのマウス イベント (ダブルおよびシングル クリック) を処理します。しかし同時に、ビューをカーソル ( QtGui.QGraphicsView.ScrollHandDrag
) でスクロールできるようにしたいです。シーンにバブルしないように、スクロールが既に発生している場合、ビューレイヤーでマウスイベントをブロックするにはどうすればよいですか?
1066 次
2 に答える
0
QGraphicsViewmouseMoveEvent
から関数を実装し、イベントを受け入れる必要があります。
protected:
virtual void QGraphicsView::mouseMoveEvent(QMouseEvent * event)
{
QPoint mouseLocation = event->pos();
// Do stuff
event->accept();
}
マウス イベントを受け入れると、親クラスはそのイベントを処理できなくなります。
これにより、マウス移動イベントが伝播されなくなります。やりたいことに応じて、、、、または関数を再実装することもできますmouseDoubleClickEvent
。それらの関数定義はすべてQGraphicsView ドキュメントにあります。mousePressEvent
mouseReleasEvent
wheelEvent
于 2013-08-02T16:23:07.857 に答える