[gelöst]QListWidget - Item löschen?
Verfasst: 18. April 2006 22:49
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:
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.
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]);
}
}
}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.