Zum simulieren von Maus-Ereignis mit Qt?

Ich soll zur simulation von Maus-Ereignis mit Qt. Zum Beispiel, wenn ich drücken Sie eine Taste auf der Tastatur, kann das Programm simuliert einen Maus-Klick-Ereignis. Ich habe versucht den code unter, aber wenn ich drücke "K", das Programm Stoppt und gibt mir eine Fehlermeldung:

The program has unexpectedly finished.

 Fall Qt::Key_K: 
QMouseEvent *mEvnPress; 
QMouseEvent *mEvnRelease; 
mEvnPress = new QMouseEvent(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); 
mEvnRelease = new QMouseEvent(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); 
QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnPress); 
QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnRelease); 
break; 

  • Ist es mehr, um den Fehler zu finden? Ist es ein Absturz? Was passiert, wenn Sie es starten mit einem debugger oder QtCreator? Hört es bei einer bestimmten Zeile?
  • Es kann normal laufen und zeigen Sie das Hauptfenster in qtcreator.Und es ist nicht mehr eine Ausgabe ohne " Das Programm hat unerwartet beendet.", wenn ich drücken Sie die Taste 'K',und die mainwindow-display als gut.
  • Der erste parameter sendEvent scheint seltsam.. Sie senden das Ereignis an das widget zuletzt konzentriert. Könnte focusWidget NULL zurück? Vielleicht sollten Sie versuchen, senden Sie es an das Hauptfenster und sehen, ob das funktioniert.
InformationsquelleAutor Tairy | 2013-12-15
Schreibe einen Kommentar