Bonjour,
J'ai créé une classe dérivée de QScrollBar pour récupérer les évenements molette de la souris:
qscrollbarext.h:
qscrollbarext.cpp:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <QScrollBar> #include <QMouseEvent> class QScrollBarExt : public QScrollBar { Q_OBJECT // must include this if you use Qt signals/slots public: QScrollBarExt(Qt::Orientation orientation, QWidget *parent=0); ~QScrollBarExt(); protected: void wheelEvent(QWheelEvent *event); signals: void wheel(int delta); };
...Mais a aucun moment le wheelEvent n'est appelé :/Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "qscrollbarext.h" QScrollBarExt::QScrollBarExt(Qt::Orientation orientation, QWidget *parent) : QScrollBar(orientation, parent) { setMouseTracking(true); } QScrollBarExt::~QScrollBarExt() { } void QScrollBarExt::wheelEvent(QWheelEvent *event) { emit wheel(event->delta()); }
Pourtant ça a bien marché quand j'ai dérivé le wheelEvent d'un QGLWidget... Ma QScrollBarExt fait bien défiler sa barre lorsque je fais jouer la molette en étant au dessus, mais c'est justement le comportement que je voulais éviter et dériver. Mais visiblement ma dérivation n'est pas appelée, aucun signal wheel() n'est envoyé.
Une idée ?