2017-02-23 1 views
0

Ich brauche von Textinhalt QListWidget Artikel löschen

ich

versucht, einen QListWidget Artikel von Textinhalt löschen:

QString mstring = "Programmer II"; 

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

... und verschiedenen Permutationen, aber ich bin etwas fehlt. Der obige Code kompiliert, löscht das Element jedoch nicht aus dem qlistwidget.

+0

Sie können die Werte der anderen Artikel anzeigen – eyllanesc

+0

Sorry, ich verstehe nicht. – Alan

+0

Wie lauten die Werte der anderen Elemente, dh der Texte? – eyllanesc

Antwort

1

Der Code zeigt nicht an, was der Wert currentRow ist, aber findItems setzt ihn nicht, daher ist es unwahrscheinlich, dass er mit dem Wert korreliert, den Sie entfernen möchten. Ich sehe keine Möglichkeit, die Ergebnisse von findItems zu verwenden und die Zeile (n) zu erhalten, die Sie entfernen möchten. Ich denke, Sie müssen den Inhalt durchlaufen, den Text jedes Elements vergleichen und dann diejenigen entfernen, die übereinstimmen. Wahrscheinlich möchten Sie die Schleife in umgekehrter Reihenfolge ausführen. Wenn Sie ein Element entfernt haben, stimmt der Schleifenzähler nicht mehr mit den Zeilennummern des Listenelements überein.

+0

Was meinst du mit 'currentRow', das ist nicht in Frage? – eyllanesc

+0

In dem von Ihnen geposteten Code lautet der Aufruf "takeItem (ui-> listJobs-> currentRow())". Das kann unmöglich sein, was du willst. – goug

+0

Der Code, den ich ursprünglich gepostet habe, basierte auf einem kompletten Missverständnis der qlistwidget API. Die Schleife, die ich basierend auf deinem Vorschlag veröffentlicht habe, funktioniert, also danke! – Alan

Verwandte Themen