Ich möchte den Mauszeiger in der Position sein, wo die Maus auf das Widget oder in der Mitte des Widgets geklickt wurde.Drag & Drop auf einem QGraphicScene - Mauszeiger in der Mitte des Widgets
Zum Beispiel, wenn das Widget ein Rechteck ist, und es ist in Drag-Ereignisse erscheint es wie im Bild unten, Ereignis Ich habe in der Mitte angeklickt und begann zu ziehen:
Wo liegt Der rote Kreis ist der Mauszeiger jedes Mal, wo immer ich das Widget "aufnehme".
Im mousePressEvent
, das tue ich so etwas wie:
void
myQFrame::mousePressEvent(QMouseEvent* event)
{
if(event->button() == Qt::LeftButton)
{
QDrag* drag = new QDrag(this);
QMimeData* mimeData = new QMimeData;
//....other stuff
drag->setMimeData(mimeData);
QPixmap widgetPixmap(this->size());
this->render(&widgetPixmap, QPoint(), QRegion(this->rect()));
}
}
Haw kann ich den Cursor gesetzt in der Mitte zum Beispiel, wenn die Widget Palisade vom Zentrum ist?
'setHotspot' ist die richtige Funktion, aber es dauert eine' QPoint' als Parameter kein 'QSize'. Die gute Lösung war: 'drag-> setHotSpot (QPoint (this -> width()/2, this -> height()/2));' Danke. Ich werde Ihre Antwort aktualisieren und sie als Lösung akzeptieren. – mtb