1.在創建QGraphicsItem子類的時候,想要實現自己繪圖,一般是重新實現boundingRect()和paint()函數,如果不重新實現shape(),基類的實現將會退而使用 boundingRect()。
2.boundingRect()這個函數的返回值是一個QRectF(一個正方形的區域),當我們需要處理我們所寫的MyItem接受到的某些事件(比如鼠標按下、拖動等)時,這些事件就被規定只能發生在這個返回的矩形區域 當中時才會起被接收到。
3.函數paint(QPainter*painter,constQStyleOptionGraphicsItem*option,QWidget*/*widget*/)所繪制的內容也只能在這個區域里面畫,畫我們某一個具體的Item的全部內容。
4.shape()所返回的就是我們所繪制的Item的大概形狀。
5.在可能改變QGraphicsItem大小或者形狀的時候,QGraphicsItem子類函數中先調用prepareGeometryChange();
轉:https://www.cnblogs.com/cy568searchx/p/3645279.html