Seite 1 von 1

MouseMoveEvent und setMouseTracking

Verfasst: 18. August 2010 14:19
von Pixtar
Hallo Leute,

habe gerade die SuFu benutzt, kommt aber nichts bei herum.

Ich habe eine Klasse von QWidget abgeleitet, im Konstruktor das setMouseTracking(true); gesetzt und das mouseMoveEvent(QMouseEvent * event); überschrieben.
Weiterhin sind die Includes eingebunden .. <QMouseEvent>,<QWidget>

Code: Alles auswählen

void TestWidget::mouseMoveEvent(QMouseEvent *event){
    QMessageBox::warning(this,tr("Info"),"x="QString::number(event->pos.x()),tr("OK"));
}
Die MessageBox erscheint NUR wenn ich das Widget per Maus an der rechten oder unteren Kante verlasse!!!

Habe ich etwas übersehen???

Ich möchte einfach nur, dass ich über das Widget mit der Maus fahre und die MessageBox immer wieder aufpoppt, ohne zu klicken ...

Grüße Pixtar

Verfasst: 18. August 2010 16:48
von danielp1000
Versuch mal das mouseMoveEvent des parent widgets zu überschreiben:

Code: Alles auswählen

void parentWidget::mouseMoveEvent(QMouseEvent *event)
{
 if(qobject_cast<TestWidget*>(childAt(event->pos()))
     QMessageBox::information(this,tr("Info"),"x="QString::number(event->pos.x()),tr("OK"));
}

Verfasst: 18. August 2010 19:49
von upsala
Zum einen enthält der Code einige Fehler, kann also nicht einmal kompiliert werden, zum anderen wäre der komplette Code nicht schlecht, da es an sich funktionieren müsste.