Verschieben Objekt mit der Maus
Verwende ich Qt und ich möchten verschieben Sie ein Objekt mit der Maus. Zum Beispiel, Benutzer klickt auf das Objekt und ziehen das Objekt an eine andere Stelle des Fensters. Wie kann ich es tun?
Versuchte ich mouseMoveEvent:
void QDropLabel::mouseMoveEvent(QMouseEvent *ev)
{
this->move(ev->pos());
}
aber leider-Objekt bewegt sich sehr seltsame Weise. Es springt von Ort zu Ort.
QDropLabel erbt QLabel. Auch es hat eine pixmap.
Ich versuchte es mit anderen Gegenständen, aber das Ergebnis ist dasselbe.
Mouse-move-Ereignis wird nicht für "die Maus zieht etwas", sondern buchstäblich Maus (cursor) bewegt. Sie haben zu fangen "ziehen" irgendwie. Auch ev->pos kann relativ zum widget
Ich will nicht verwenden Sie es per drag-and-drop. Ich will einfach nur verschieben Objekt mit der Maus.
Ok, aber Sie wollen Objekt zu Folgen, cursor von selbst, oder machen Sie beweglich
Ich will nicht verwenden Sie es per drag-and-drop. Ich will einfach nur verschieben Objekt mit der Maus.
Ok, aber Sie wollen Objekt zu Folgen, cursor von selbst, oder machen Sie beweglich
InformationsquelleAutor LosYear | 2012-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre beweglichen widget muss ein
QPoint offset
Mitglied. Sie speichern eine position des Cursors klicken Sie auf relativ zu dem widget oben Links:On-mouse-move-Ereignis, die Sie gerade bewegen Sie Ihre widgets im übergeordneten Koordinatensystem. Beachten Sie, dass wenn Sie nicht subtrahieren
offset
von der cursor-position, das widget wird 'springen', so dass seine Obere linke Ecke wird gerade unter dem cursor.InformationsquelleAutor hank