2017-02-23 61 views
0

刪除QListWidget項目,我需要通過文本內容刪除qlistwidget項目通過文本內容

我想:

QString mstring = "Programmer II"; 

QList<QListWidgetItem *> items = ui->listJobs->findItems(mstring, Qt::MatchExactly); 
    if (items.size() > 0) 
     ui->listJobs->takeItem(ui->listJobs->currentRow()); 

...和各種排列,但我失去了一些東西。上面的代碼編譯,但不會從qlistwidget中刪除項目。

+0

您可以顯示其他項目的值 – eyllanesc

+0

對不起,我不明白。 – Alan

+0

其他項目的價值是什麼,即文本? – eyllanesc

回答

1

該代碼並不指示currentRow的值是什麼,但findItems未設置它,因此不太可能與要刪除的值相關聯。我沒有看到任何方式使用findItems的結果並獲取要刪除的行。我認爲你必須循環瀏覽內容,比較每個項目的文本,然後刪除那些匹配的內容。你可能會想要以相反的順序進行循環;否則,一旦你刪除了一個項目,循環計數器將不再匹配列表項目的行號。

+0

'currentRow'是什麼意思,這不是問題所在? – eyllanesc

+0

在你發佈的代碼中,調用是「takeItem(ui-> listJobs-> currentRow())」。這不可能是你想要的。 – goug

+0

我最初發布的代碼是基於對qlistwidget api的完全誤解。我發佈的循環,根據您的建議,工作,所以謝謝! – Alan