Qt-Rechtsklick auf mouseReleaseEvents nicht gefangen eventfilter,andere Ereignisse aber sind gefangen

Meine Anwendung besteht aus einer WebView-widget. Ein Klick auf das widget wird nicht behandelt, indem die mousePressEvent() meiner Anwendung, aber durch das WebView-widget. So, ich installierte einen ereignisfilter, der die Ereignisse empfangen. Nun bekomme ich mitgeteilt, alle Veranstaltungen, mit Ausnahme der mouseReleaseEvent für das Recht auf (Alles funktioniert für Links-Klicks und mousePressEvent für die Rechte Maustaste ist auch immer registriert). Ich denke, es hat etwas zu tun mit dem Zusammenhang von Ereignissen zu bekommen, erzeugt durch richtige Klicks (ein pop-up-Menü generiert wird). Aber da bin ich mit einem filter, der Fall sollte zuerst an mich. Der folgende code ist der code für den event-filter
in Jambi, aber ich hoffe ich kann das ändern einer Antwort in Qt für Jambi.

public boolean eventFilter(QObject o,QEvent event)
 {
  if (event.type()==QEvent.Type.MouseButtonPress)   //One can call the mousePressEvent() functions from here,which can do this work but speed
  {
   if (((QMouseEvent)event).button()==Qt.MouseButton.LeftButton)
   {
    mousebuttontype=1;
    clickedorpressed=1;
   }
   else
   if (((QMouseEvent)event).button()==Qt.MouseButton.RightButton)
   {
    mousebuttontype=2;
    System.out.println("right");
   }
   t1=QTime.currentTime();
   t1.start();
  }
  else
  if (event.type()==QEvent.Type.MouseButtonRelease)
  {
   if (t1.elapsed()>900)
   {
    switch(mousebuttontype)
    {
     case 1: browser.back();
      break;
     case 2: browser.forward();
      break;
    } 
   }System.out.println("choda");
  } 

  return false;
 }

MEIN GRUNDLEGENDES ZIEL IST IMMER DER ZEITRAUM, FÜR DEN SIE DIE RECHTE MAUSTASTE GEDRÜCKT WURDE. ABHILFE ?

InformationsquelleAutor Daud | 2010-10-13
Schreibe einen Kommentar