1
我希望鼠标光标位于控件或控件中心点击鼠标的位置。在QGraphicScene上拖放 - 在控件中心的鼠标光标
例如,如果小部件是一个矩形,它是在它看起来像下面的图片拖动事件,事件,我点击的中心,开始拖动:
在哪里每当我“拾起”小部件的时候,红色圆圈就是鼠标光标。
在mousePressEvent
,我做这样的事情:
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()));
}
}
山楂可我设置光标是在中心,例如,如果小部件是从中心纠察?
'setHotspot'是正确的功能,但它需要一个'QPoint'作为参数不是'QSize'。所以最好的解决方案是:'drag-> setHotSpot(QPoint(this-> width()/ 2,this-> height()/ 2));'谢谢。我会更新你的答案并接受它作为解决方案。 – mtb