Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QGraphicsRectItem boundingRect() not updating with mousemove event

QGraphicsRectItem boundingRect() not updating with mousemove event

Scheduled Pinned Locked Moved Unsolved General and Desktop
qgraphicsitemboundingrectmousemove
2 Posts 2 Posters 1.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sayan275
    wrote on last edited by
    #1

    I have a QgraphicsRectItem, with a overridden boundingRect().
    I try to print the boundingRect(), in ItemChange() with ItemPositionChange flag, but it doesn't update.

    TiltBoxItem::itemChange QPointF(-485.063,4.53229)
    TiltBoxItem::itemChange boundingRect:: QRectF(728.313,289.567 166.75x90.135)
    TiltBoxItem::itemChange m_BOX:: QRectF(728.813,290.067 165.75x89.135)
    TiltBoxItem::mouseMoveEvent m_BOX:: QRectF(728.813,290.067 165.75x89.135)
    

    the value which shows for boundingRect and m_box is same as I drawn on scene. After that I have moved it throughout the scene, but the bounding box/m-box is not updated.

    the code is like this

    QRectF TiltBoxItem::boundingRect() const
    {
        return QGraphicsRectItem::boundingRect();
    }
    
    QVariant TiltBoxItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
    {
        if(change == QGraphicsItem::ItemPositionChange)
        {
            qInfo()<<__FUNCTION__<<value.toPointF();
            qInfo()<<__FUNCTION__<<"boundingRect::"<<boundingRect();
            qInfo()<<__FUNCTION__<<"m_BOX::"<<m_box;
        }
        return QGraphicsItem::itemChange(change, value);
    }
    
    void TiltBoxItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
    {    
        QGraphicsItem::mouseMoveEvent(event);
        update();
        qInfo()<<__FUNCTION__<<"m_BOX::"<<m_box;
    }
    

    m_box is

     QRectF m_box;
    
    //and in ctor we initialize it
    m_box = rect;
    setRect(m_box);
    

    Why the boundingRect is not updating with the mousemoveEvent?...is there some code required to update the boundingRect ?

    Any help is appreciated.

    1 Reply Last reply
    0
    • eyllanescE Offline
      eyllanescE Offline
      eyllanesc
      wrote on last edited by eyllanesc
      #2

      boundingRect does not depend on the position of the item with respect to the scene since it is in coordinates with respect to the item. I recommend you review https://doc.qt.io/qt-5/graphicsview.html so that you understand the different coordinate systems that are handled.

      If you want me to help you develop some work then you can write to my email: e.yllanescucho@gmal.com.

      1 Reply Last reply
      1

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved