Was ist die beste (wie in den einfachsten) Art und Weise, um die pos
eines mousePressedEvent
in einem QLabel zu erhalten? (Oder grundsätzlich erhalten nur die Position per Mausklick relativ zu einem QLabel widget)Position des Mausklicks in einem QLabel erreichen
EDIT
Ich habe versucht, was Frank auf diese Weise vorgeschlagen:
bool MainWindow::eventFilter(QObject *someOb, QEvent *ev)
{
if(someOb == ui->label && ev->type() == QEvent::MouseButtonPress)
{
QMouseEvent *me = static_cast<QMouseEvent *>(ev);
QPoint coordinates = me->pos();
//do stuff
return true;
}
else return false;
}
jedoch
, erhalte ich die Kompilierung Fehler invalid static_cast from type 'QEvent*' to type 'const QMouseEvent*'
in der Zeile, in der ich versuche, me
zu deklarieren. Irgendwelche Ideen, was ich hier falsch mache?
Brauchen Sie wirklich 2 'const''s in der Deklaration von mir? Wenn ja warum? Außerdem habe ich Probleme, Ihren Code zu kompilieren, da der Compiler mir 'ungültigen static_cast vom Typ 'QEvent *' gibt, um 'const QMouseEvent *' in dieser Zeile einzugeben – wrongusername
Haben Sie eingeschlossen? Die Störungen sind nicht unbedingt notwendig, aber ich halte es für eine gute Übung, die Provisorien konstant zu machen. –
ah ja, ich habe das nicht aufgenommen. Vielen Dank! Ich fragte mich jedoch, warum es nicht nur "const QMouseEvent * me" war ... was macht die zweite const? – wrongusername