mouseMoveEvent() ne fonctionne pas
Bonjour,
J'essaye de faire fonctionner Qt avec Ogre, et je rencontre un problème avec le déplacement de la souris:
j'arrive à récupérer tous les clics, mais je ne récupère le mouvement de la souris que lorsqu'un bouton de la souris est enfoncé...
J'ai essayé pas mal de choses, comme la méthode setMouseTracking(true), ainsi que bool eventFilter(QObject* object, QEvent* event)...
Je suis à cours d'idées pour l'instant...
Voici la partie principale de mon code:
MainWindow.h:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class MainWindow: public QMainWindow{
Q_OBJECT
private:
int m_width, m_height;
OgreWidget* m_pRenderWindow;
public slots:
void show();
public:
MainWindow(const int width = DEFAULT_W, const int height = DEFAULT_H);
bool eventFilter(QObject* object, QEvent* event);
}; |
MainWindow.cpp:
Code:
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
MainWindow::MainWindow(const int width, const int height)
:m_width(width),
m_height(height),
m_pRenderWindow(NULL){
resize(m_width, m_height);
QWidget* pView = new QWidget(this);
try{
m_pRenderWindow = new OgreWidget();
QVBoxLayout* pLayout = new QVBoxLayout();
pLayout->addWidget(m_pRenderWindow);
pView->setLayout(pLayout);
}catch(...){
QApplication::quit();
}
startTimer(50);
setCentralWidget(pView);
}
/**
*
*/
bool MainWindow::eventFilter(QObject* object, QEvent* event){
Q_UNUSED(object);
if( event->type() == QEvent::MouseMove ){
QMouseEvent* mouse = static_cast<QMouseEvent*>(event);
m_pRenderWindow->mouseMoveEvent(mouse);
}
return false;
}
/**
*
*/
void MainWindow::show(){
m_pRenderWindow->installEventFilter(this);
m_pRenderWindow->setMouseTracking(true);
QMainWindow::show();
} |
main.cpp:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
int main(int argc, char** argv){
QApplication app(argc, argv);
MainWindow win;
win.show();
return app.exec();
} |