按文本内容删除 QListWidget 项

Delete QListWidget item by text content

我需要通过文本内容删除一个 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 中删除该项目。

该代码未指明 currentRow 的值是什么,但 findItems 未设置它,因此它不太可能与您尝试删除的值相关联。我看不到有任何方法可以使用 findItems 的结果并获取要删除的行。我认为你必须遍历内容,比较每个项目的文本,然后删除匹配的。您可能希望以相反的顺序执行循环;否则,一旦您删除了一项,循环计数器将不再匹配列表项的行号。