ich benutze ein QListWidget und habe dort ein paar Zeilen Text stehen.
Nun möchte ich mit einem QPushButton die aktuelle (angeklickte) Zeile löschen. Um das zu Realisieren habe ich folgendes getestet.
Das Problem ist, dass der Parameter aus dem Datentyp int sein soll.
Ich möchte diesen jedoch nicht fest vorgeben, denn es soll ja die angeklickte Zeile (current) gelöscht werden.
Dazu musst du den KeyPressEvent des ListWidget (von welchem du eine eigene Klasse ableiten musst) anpassen. Suche in der Doku mal danach, da solltest du etwas finden.
Noch eine Frage:
Ich möchte überprüfen, ob in dem QListWidget eine Zeile angeklickt ist.
Wenn keine angeklickt ist gibt es eine Fehlermeldung mitteil QMessageBox.
Leider finde ich aber im QListWidget keine Methode, die einen boolschen Wert zurückgibt.
Wie kann ich das dann prüfen?
Frage doch currentRow() ab. Sollte auf -1 sein, wenn nichts angewählt ist. Jenachdem kannst du auch selectedItems() aufrufen und die Anzahl der Listeneinträge überprüfen. Kommt drauf an, was du für einen Selektionsmodus eingestellt hast.
Hast recht, dort steht es nicht. Bei anderen Widgets ist es jedoch so beschrieben. Funktionen mit Pointern als Rückgabewerdte geben in solchen Fällen einen Null-Pointer zurück und solche mit int eine -1. Und Count/Size natürlich 0.
Ich hoffe mal, diese Verallgemeinerung stimmt *g*.
Ich bin auf jeden Fall immer gut verfahren damit...