2017-08-04 3 views
2

Qt hat eine Methode, die QDrag::setHotSpot()Was bedeutet Hotspot in Qt Drag & Drop?

die Position des Hot Spot des relativen Pixmap setzt auf die oben links auf den Punkt Ecke Hotspot angegeben verwendet.

Aber was ist Hotspot und seine Funktion? Wie würdest du es definieren?

Antwort

2

Der Hotspot definiert im Wesentlichen, wo sich die gezogene Pixmap befinden soll, während die Ziehoperation läuft.

Werfen Sie einen Blick auf diese drag & drop example, um zu sehen, wie es typischerweise verwendet wird.

2

Wir haben auch die Cursor des Hot Spot, seine Position in Bezug auf die oberste Ebene Ecke des Zieh pixmap, um als Punkt, den wir oben berechneten angeben. Dadurch wird der Prozess des Ziehens des Etiketts natürlicher gehalten , da der Cursor während der Ziehvorgang immer auf die gleiche Stelle auf dem Etikett zeigt.

QDrag *drag = new QDrag(this); 
drag->setMimeData(mimeData); 
drag->setPixmap(*child->pixmap()); 
drag->setHotSpot(hotSpot); 
child->hide(); 

Fridge Magnets Example

+0

„Das macht den Prozess des Ziehens das Label natürlich fühlen, weil der Cursor immer auf der gleichen Stelle auf dem Etikett während des Ziehvorgangs ein.“ Was würde ohne einen Hot Spot passieren? Der Cursor würde stattdessen während des Ziehens jedes Mal auf verschiedene Stellen auf dem Etikett zeigen. – Trilarion