Bonjour,

J'ai une fenêtre QT assez simple: elle contient uniquement un QGLWidget.

Main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	Window window;
	window.setMouseTracking(true);
	window.move(0, 0);
	window.resize(600, 600);
	window.show();
 
	return app.exec();
}
Ma "Window" qui dérive de QWidget:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Window::Window()
{
	glWidget = new GLWidget(this);
	glWidget->setMouseTracking(true);
 
	QHBoxLayout *mainLayout = new QHBoxLayout;
	mainLayout->addWidget(glWidget);
	mainLayout->setMargin(0);
	setLayout(mainLayout);
 }
J'aimerai pouvoir bouger le curseur de la souris à une certaine position sur la fenêtre, j'ai donc fait ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void MyClass::moveMouse(int x, int y)
{
	QCursor::setPos(window->geometry().topLeft().x()+x, window->geometry().topLeft().y()+y);
}
Ce code source fonctionne très bien environ 1 fois sur 5. Parfois, la géometrie 'topLeft' me retourne "0" alors que j'ai bien une fenêtre avec une barre au-dessus
Est-ce un bug dans QT ou est-ce que j'ai fait quelque chose de mal ?

Merci d'avance.