Mousclicks unterdrücken

Alles rund um die Programmierung mit Qt
Antworten
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Mousclicks unterdrücken

Beitrag von flownfluid »

Hallo zusammen,

ich habe ein Programm geschrieben welches die Fähigkeit hat, Mausbewegungen aufzeichenen und diese schlussendlich wieder abspielen kann(Macrorecorder).
Das Aufzeichnen aller Mousevents funktioniert einwandfrei. Leider habe ich noch ein kleines Problem beim Abspielen:

Beim Abspielen sollte der Anwender die Maus noch bewegen können jedoch sämtliche Clicks von der Maus sollten ignoriert werden.

Hat jemand eine Ahnung wie ich das am einfachsten Lösen kann?

Was ich schon versucht habe:

nach dem initialisieren von allen Widgets:

Code: Alles auswählen

    QWidget* po_mainWidget = this;
    foreach(QWidget *widget, QApplication::allWidgets())
    {
      installEventFilter(po_mainWidget);
    }
eventfilter:

Code: Alles auswählen

  bool PchMainWindow::eventFilter (QObject *apo_target, QEvent *apo_event)
  {
    bool b_isMouseEvent = false;
    if (apo_event->type() == QEvent::MouseButtonPress)
    {
      b_isMouseEvent = true;
    }
    else if (apo_event->type() == QEvent::MouseButtonRelease)
    {
      b_isMouseEvent = true;
    }
    else if (apo_event->type() == QEvent::MouseMove)
    {
      b_isMouseEvent = true;
    }
    if(b_isMouseEvent)
    {
      apo_event->ignore();
      return false;
    }    
    return QWidget::  eventFilter(apo_target,apo_event);
  }
Leider funktioniert dies nicht, wenn ich auf einen Button drücke...


Vielen Dank und Gruss
Antworten