Seite 1 von 1

QListWidget Prüfen ob eine Item gewählt wude

Verfasst: 8. November 2011 19:45
von petri253
Vermutlich ist die Antwort einfach, aber trotz langer Suche und probieren habe ich keine Lösung für mein Problem gefunden.
Ziel ist es Daten in einer Datenbank zu speichern. Zu Erfassung stehen mehrere Text- aber auch Listenfeldern mit vorgegebenen Werten zur Verfügung.
Vor Speichern der Daten in der Datenbank soll geprüft werden, ob in jeden Listenfeld auch ein Wert gewählt wurde.

Mein Versuch war zum Beispiel

Code: Alles auswählen

  if    (ui->listerfasskat->currentItem()->text().toLocal8Bit() == "") {

        QMessageBox::critical(this, "Achtung", "Kategorie nicht erfasst \n Bitte aendern .", QMessageBox::Ok);

        }
Funktioniert natürlich nicht, weil ja kein Item gewählt wurde. Programm stürzt dann ab.

Re: QListWidget Prüfen ob eine Item gewählt wude

Verfasst: 8. November 2011 20:11
von ScyllaIllciz
QString hat eine Methode "isEmpty()" ;-) also:

Code: Alles auswählen

ui->listerfasskat->currentItem()->text().isEmpty()

Re: QListWidget Prüfen ob eine Item gewählt wude

Verfasst: 8. November 2011 20:43
von petri253
Danke für die Antwort. Hier stürzt das Programm aber trotzdem ab. Ich denke, dass liegt daran, dass mangels erfolgter Auswahl, gar kein "currentItem" zur Prüfung vorhanden ist.
Genau , dass will ich prüfen. Ich habe es so probiert:

Code: Alles auswählen

 if    (ui->listerfasskat->currentItem()->text().isEmpty()) {

        QMessageBox::critical(this, "Achtung", "Kategorie nicht erfasst \n Bitte aendern .", QMessageBox::Ok);

       }

Beim Erstellen kommt kein Fehler. das Programm stürzt ab, wenn kein Wert selektiert
Kommentiere ich es aus, funktioniert das Programm. Es speichert aber dann einen Null - Wert, wenn in einer Liste kein Wert gewählt wurde.

Re: QListWidget Prüfen ob eine Item gewählt wude

Verfasst: 8. November 2011 22:20
von Christian81
Dann solltest Du prüfen ob currentItem NULL ist oder nicht...

Re: QListWidget Prüfen ob eine Item gewählt wude

Verfasst: 9. November 2011 17:31
von petri253
Das wars :D . Danke. Die Lösung sieht jetzt so aus und es funktioniert.

Code: Alles auswählen

    if    (ui->listerfasskat->currentItem() == 0) {

            QMessageBox::critical(this, "Achtung", "Kategorie nicht erfasst \n Bitte aendern .", QMessageBox::Ok);

           }