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 : 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 #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 : 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 #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 ?
Partager