Wie simuliere ich Mausklicks in der GUI
Verfasst: 21. Februar 2008 10:10
Hallo,
ich möchte Mausklicks in mein Hauptfenster simulieren, in der Hoffnung, dass QT die selben Reaktionen zeigt, als hätte ich wirklich mit der Maus irgendwo drauf geklickt.
Ich versuche das so:
Ich sehe auch, dass die Events ankommen:
Aber wenn nun ein Button an der pos Koordinate liegt, dann erhalte ich weder ein mouseEvent noch wird der Button (von QT) betätigt.
Schicke ich den Event an den Button selbst, dann wird er aktiviert.
Habe auch schon mit globalPos experimentiert, leider ohne Erfolg.
Gibt es da eine Lösung?
Gruß, Peter
ich möchte Mausklicks in mein Hauptfenster simulieren, in der Hoffnung, dass QT die selben Reaktionen zeigt, als hätte ich wirklich mit der Maus irgendwo drauf geklickt.
Ich versuche das so:
Code: Alles auswählen
QPoint pos(100,80);
QMouseEvent event(QEvent::MouseButtonPress, pos,Qt::LeftButton, 0 , 0);
QApplication::sendEvent(mainwin, &event);
QMouseEvent event2(QEvent::MouseButtonRelease, pos,Qt::LeftButton, 0, 0);
QApplication::sendEvent(mainwin, &event2);
Code: Alles auswählen
void Mainwin::mousePressEvent(QMouseEvent *event) {
QPoint lastPos = event->pos();
qDebug ("Mouseklick: %d,%d, Global: %d,%d",lastPos.x(),lastPos.y(),event->globalPos().x(),event->globalPos().y());
}
Schicke ich den Event an den Button selbst, dann wird er aktiviert.
Habe auch schon mit globalPos experimentiert, leider ohne Erfolg.
Gibt es da eine Lösung?
Gruß, Peter