原文:要執行此操作首先需要在新增item的時候設定item為可被選中管理qgraphicsscene中的items其實不是很方便,本文操作的是刪除qgraphicsscene中的item
中是獲取選中的item列表
迴圈刪除item列表中的items
// 新增item
qreal x =
20404614
; qreal y =
3918540
; qgraphicsellipseitem* ellipse =
new qgraphicsellipseitem;
ellipse-
>
setrect
(x - xoffset, y - yoffset,30,
30); ellipse-
>
setpen
(qcolor
(qt::white));
ellipse-
>
setbrush
(qbrush
(qcolor
(qt::red)))
;// 設定可被選中
ellipse-
>
setflags
(qgraphicsitem::itemisselectable)
; scene-
>
additem
(ellipse)
; view-
>
centeron
(x - xoffset, y - yoffset)
;
刪除item
qlist> itemlist = scene-
>
selecteditems()
;for
(auto i =
0; i < itemlist.
size()
; i++
)
刪除qgraphicsscene中的item即需要知道item的座標
然後刪除這個區域內的item即可
// 新增item
qreal x =
20404614
; qreal y =
3918540
; qgraphicsellipseitem* ellipse =
new qgraphicsellipseitem;
ellipse-
>
setrect
(x - xoffset, y - yoffset,30,
30); ellipse-
>
setpen
(qcolor
(qt::white));
ellipse-
>
setbrush
(qbrush
(qcolor
(qt::red)))
; ellipse-
>
setflags
(qgraphicsitem::itemisselectable)
; scene-
>
additem
(ellipse)
; view-
>
centeron
(x - xoffset, y - yoffset)
;
刪除item
qreal x =
20404614
; qreal y =
3918540
; qrectf rect
(x - xoffset, y - yoffset,5,
5); qlist> itemlist = scene-
>
items
(rect)
;for
(auto i =
0; i < itemlist.
size()
; i++
)
Qt動態刪除
m glayout removewidget widget delete widget ui widget children i int num ui m glayout count 獲取gridlayout中item的數目 num return for int i im glayout itema...
Qt刪除資料夾
寫的軟體需要進行資料夾的複製,開始不怎麼懂就找了個拷貝資料夾的 測試了一下,執行程式選擇了源目錄和目標目錄相同進行拷貝,結果悲劇了。因為是遞迴拷貝,導致資料夾被巢狀n層,軟體宕機,強制結束後,產生的資料夾有n多層,右鍵刪除說檔名太長無法刪除。網上找了很多方法都無法清理掉這個巢狀的資料夾,折磨了n久,...
Qt中listwidget中刪除item的方法
一 要想長按刪除qlistwidget的item,必須重寫滑鼠事件,所以需要繼承qlistwidget重寫自己的mylistwidget。分享一下我寫的類 h檔案 ifndef cjwlistwidget h define cjwlistwidget h include include includ...