QListWidget怎樣刪除當(dāng)前項(xiàng)
在Qt中,QListWidget是一個(gè)非常方便的控件,它可以在一個(gè)列表中顯示多個(gè)條目,并且支持對這些條目進(jìn)行添加、刪除、編輯等操作。但是,有時(shí)候我們需要刪除當(dāng)前選中的項(xiàng),該怎么做呢?步驟一:選擇“Go
在Qt中,QListWidget是一個(gè)非常方便的控件,它可以在一個(gè)列表中顯示多個(gè)條目,并且支持對這些條目進(jìn)行添加、刪除、編輯等操作。但是,有時(shí)候我們需要刪除當(dāng)前選中的項(xiàng),該怎么做呢?
步驟一:選擇“Go to slot”
要刪除當(dāng)前項(xiàng),我們需要為“刪除當(dāng)前項(xiàng)”動作添加一個(gè)槽函數(shù)。首先,我們需要右鍵單擊該動作,然后選擇“Go to slot”。
步驟二:選擇triggered信號
接下來,在彈出的菜單中,選擇triggered信號。該信號會在用戶點(diǎn)擊“刪除當(dāng)前項(xiàng)”動作時(shí)被觸發(fā)。
步驟三:獲取當(dāng)前項(xiàng)所在的行數(shù)
在槽函數(shù)里面,我們需要先獲得當(dāng)前項(xiàng)所在的行數(shù)??梢允褂肣ListWidget的currentRow()函數(shù)來實(shí)現(xiàn):
```
int row yourListWidget->currentRow();
```
步驟四:移除當(dāng)前項(xiàng)
接下來,我們可以使用takeItem()函數(shù)將當(dāng)前項(xiàng)從列表中移除:
```
QListWidgetItem* item yourListWidget->takeItem(row);
```
該函數(shù)會返回從列表中移除的QListWidgetItem對象的指針。
步驟五:刪除當(dāng)前項(xiàng)
雖然我們已經(jīng)將當(dāng)前項(xiàng)從列表中移除了,但是它還存在于內(nèi)存中。為了徹底刪除它,我們需要手動將其刪除:
```
delete item;
```
步驟六:運(yùn)行程序
最后,我們只需要編譯并運(yùn)行程序,然后點(diǎn)擊“刪除當(dāng)前項(xiàng)”按鈕即可刪除當(dāng)前選中的行。
總結(jié)
在Qt中,刪除QListWidget中的當(dāng)前項(xiàng)并不難。只需要為“刪除當(dāng)前項(xiàng)”動作添加一個(gè)槽函數(shù),并在其中使用currentRow()和takeItem()函數(shù)即可完成。同時(shí),記得手動將該項(xiàng)從內(nèi)存中刪除。