Seite 1 von 1

mousePressEvent

Verfasst: 30. September 2008 15:47
von AIL
Hallo!

Ich habe ein kleines Problem mit mousePressEvent bei der Portierung von QT 3 zu QT 4:

Hier ist mein Code von QT3:
if (Maus->button()==Qt::LeftButton)
{
Mausgedrueckt=1;
}
if (Maus->button()==Qt::RightButton)
{
Mausgedrueckt=2;
}
if (Maus->state()==Qt::RightButton&&Qt::LeftButton||Maus->state()==Qt::LeftButton&&Qt::RightButton)
{
Mausgedrueckt=3;
}
LetztesMausX=Maus->x();
LetztesMausY=Maus->y();
Kann ich so nichtmehr verwenden, weil es "state()" nichtmehr gibt.

Statt dessen gibt es "buttons()", welches meinem Verständnis nach eigentlich das Gleiche tun soll.
Tut es aber nicht.
Es verhält sich anders und egal welche Kombinationen ich probiere, ich bekomme das alte Verhalten nicht hin.

Das war:
Linksklick setzt Mausgedrueckt auf 1.
Rechtsklick setzts es auf 2.
Beide Tasten gleichzeitig setzt es auf 3.
[/quote]

Verfasst: 30. September 2008 15:54
von Ginsengelf
Moin,
meiner Meinung nach sollte auch buttons() die Aufgabe erfüllen:

Code: Alles auswählen

if (event->buttons () == (Qt::RightButton | Qt::LeftButton))
    // tu was
Ginsengelf

edit: du gehst auf jeden Fall auch in einer der button() (ohne "s") Zweige, sollte aber eigentlich dann später überschrieben werden

Verfasst: 30. September 2008 16:22
von AIL
Jap, genau so geht es.
Hatte die Klammern vergessen, was natürlich nicht funktionieren konnte.