Bonjour, j'ai un souci pour intercepter un wheelEvent sur un QGraphicsItem personnalisé.

Grosso modo j'ai des items qui sont des cercles, et je voudrais en modifier le rayon d'un coup de molette. Le problème c'est que je ne rentre jamais dans le wheelEvent. Aucun probleme pour le mouseMoveEvent ou le contextMenuEvent qui se comportent comme attendu.
Je vous mets le code du wheelEvent

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
void GDomain::wheelEvent(QGraphicsSceneWheelEvent* event)
{
	double rfact(1.1);
	//si on a un domaine circulaire
	if (/*circular && */event->modifiers() == Qt::ControlModifier)
	{
		std::cout << "enter wheel event" << std::endl;
		event->accept();
		if (event->delta() > 0)
		{
			rayon *= rfact;
		}
		else
		{
			rayon /= rfact;
		}
 
		domaine->setRadius(rateAmort(), typeAmort(), xc, yc, rayon);
		moveGraphicsItems();
	}
	else
	{
		event->ignore();
	}
 
	QGraphicsObject::wheelEvent(event);
}
J'ai également un wheelEvent au niveau de la QGraphicsView

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void GraphicsView::wheelEvent( QWheelEvent* event )
{
	setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
 
	if (event->modifiers() == Qt::NoModifier)
    {
		event->accept();
        if (event->delta() > 0)
            zoomIn();
		else
            zoomOut();
    }
    else
    {
        event->ignore();
    }
}
Pas de problème ici non plus, mon zoom se fait bien.


Je me demandais si c'était pas justement la vue qui empêchait l'event de se propager à l'item mais à ce que j'ai compris ça se passe dans l'autre sens : si aucun item n'intercepte l'event, il est ignoré par la scene et transmis à la vue.

Est-ce-que quelqu'un aurait une idée de ce qui se passe ?