QGraphicsItem的拖拽問題


我創建了一個Star類繼承QGraphicsPathItem類,在GraphicsView上拖拽star實例,出現的問題是每次都重復地從初始位置拖拽。view上的星星我都是用setPos(x,y)設置位置。只有第一個拖拽的星星從它的初始位置(x1,y1)拖拽,第二個甚至以后的星星初始點都是view的左上角。我在star里重寫drag相關的Event,調試的時候一個都沒執行。
有點蒙了。求大神指點迷津

2 个解决方案

#1


漏了一處沒說。我重寫了star的mousePressEvent,想在點擊的時候改變顏色,然后在paint里setPen(),就是加了mousePressEvent才出現拖拽時從初始點拖拽
void Star::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
    color_ = Qt::darkYellow;
    update();
    QGraphicsPathItem::mousePressEvent(event);
}

着有什么問題嗎

#2


是不是坐標設置的不對, QGraphicsView和QGraphicsScene都有自己的坐標系的,需要轉換才行,如在view上坐標轉為scene為maptoscene(),或者mapfromscene()

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com