2017-02-23 58 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