[gelöst]QListWidget - Item löschen?

Alles rund um die Programmierung mit Qt
Antworten
Klaue
Beiträge: 13
Registriert: 13. Januar 2006 13:21

[gelöst]QListWidget - Item löschen?

Beitrag von Klaue »

Hallo zusammen

OK, das ist höchstwahrscheinlich ziemlich Trivial, aber ich kriegs nicht hin. Ich tu dem User in einem ListWidget eine Namensliste (von Künstlern) anzeigen. alles was ich möchte, ist, dass es, wenn er einen Künstler angeklickt (=markiert) hat und dann auf den Lösch-Button klickt, diesen Zeichner aus der Liste löscht.
Aber ich krieg es einfach nicht hin. Ich hab schon ziemlich viel ausprobiert.. Was bis jetzt noch am Besten funktioniert hat ist das folgende:

Code: Alles auswählen

void MyProg::deleteFromList() {
	if (lwArtists->currentItem() != NULL) {
		vector<QString> vTemp;
		for (unsigned int i = 0; i < vArtists.size(); ++i) { // in dem vector ist dasselbe wie in der list
			if (vArtists[i] != lwArtists->currentItem()->text()) {
				vTemp.push_back(vArtists[i]);
			}
		}
		vArtists.clear();
		for (unsigned int i = 0; i < vTemp.size(); ++i) {
			vArtists.push_back(vArtists[i]);
		}
		
		lwArtists->clear();
		for (unsigned int i = 0; i < vArtists.size(); ++i) {
			lwArtists->addItem(vArtists[i]);
		}
	}
}
Wobei lwArtists das QListWidget ist. der Stringvector vArtists ist nur dort, weil ich lieber mit Vektoren arbeite als mit dieser Liste, die nur da ist, um dem User leichten zugriff zu gewähren.

Das einzige, was dieser Code aber schafft, ist, dass das letzte hinzugefügte Element wieder rausgelöscht wird, nicht aber das, das der User markiert hat.

Ich könnte mir vorstellen, dass die Lösung ziemlich einfach ist, aber ich komm einfach nicht drauf. Hoffentlich kann mir jemand helfen.
Zuletzt geändert von Klaue am 19. April 2006 13:10, insgesamt 1-mal geändert.
Quidquid latine dictum sit, altum sonatur
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

servus,

hier ein kleine bsp:

Code: Alles auswählen

QListWidgetItem *item = listwidget->currentItem();

if( item == NULL )
   return;

delete item;
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
Klaue
Beiträge: 13
Registriert: 13. Januar 2006 13:21

Beitrag von Klaue »

Danke vielmals, hat super geklappt!
Quidquid latine dictum sit, altum sonatur
Antworten