Удалить элемент 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

Решение

Код не указывает, какое значение имеет currentRow есть, но findItems не устанавливает его, поэтому вряд ли это будет соответствовать значению, которое вы пытаетесь удалить. Я не вижу возможности использовать результаты findItems и получите строки, которые вы хотите удалить. Я думаю, что вы должны просмотреть содержимое, сравнить текст каждого элемента, а затем удалить те, которые соответствуют. Возможно, вы захотите сделать цикл в обратном порядке; в противном случае после удаления элемента счетчик цикла больше не будет соответствовать номерам строк элемента списка.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]