Qt工作笔记-QGraphics框架场景中图元的移除与析构
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-QGraphics框架场景中图元的移除与析构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.場景里面使用removeItem函數,這個函數官方給出如下解釋
注意這個詞remove只是移除,并不是delete掉,所以只是場景中(顯示出來的圖元)沒有了,空間還是存在。
?
舉個代碼例子:
void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event) {setCursor(Qt::ArrowCursor);QGraphicsScene *m_scene=this->scene();m_scene->removeItem(m_item);QGraphicsView::mouseReleaseEvent(event); }這個m_item的在內存中還是存在的!
?
2.delete掉場景,
場景里面的item都會被自動delete掉
代碼如下:
void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event) {setCursor(Qt::ArrowCursor);QGraphicsScene *m_scene=this->scene();delete m_scene;QGraphicsView::mouseReleaseEvent(event); }看下item的內存:
?
3.調用場景中的clear函數(推薦使用)
程序源碼如下:
void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event) {setCursor(Qt::ArrowCursor);QGraphicsScene *m_scene=this->scene();m_scene->clear();QGraphicsView::mouseReleaseEvent(event); }內存圖如下:
?
?
所以在清空的時候直接clear就完了。如果item自己寫了一個鏈表進行備份,調用clear就可以了,不用自己去遍歷那個鏈表然后一個一個delete,在把scene clear掉,這樣就和脫褲子打屁一樣,
?
直接調用clear,鏈表也是,就這樣,就這么簡單。
總結
以上是生活随笔為你收集整理的Qt工作笔记-QGraphics框架场景中图元的移除与析构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习笔记-带TCP数据传输的局域网聊
- 下一篇: 设计模式工作笔记-简单工厂场景与实现(针