mousePressEvent

Alles rund um die Programmierung mit Qt
Antworten
AIL
Beiträge: 4
Registriert: 25. September 2008 17:02

mousePressEvent

Beitrag 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]
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Beitrag 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
AIL
Beiträge: 4
Registriert: 25. September 2008 17:02

Beitrag von AIL »

Jap, genau so geht es.
Hatte die Klammern vergessen, was natürlich nicht funktionieren konnte.
Antworten