Hallo, ich hoffe ich sprech nichts an was schon öfter gefragt wurde.
Ich habe ein kleines GUI Prgramm geschrieben, jedoch würde ich dieses an einer Stelle aufgrund Überischtlichkeit noch verbessern.
Dazu brauche ich ein ListWidget welches "custom" Items aufnehmen kann, die wiederum aus Widgets bestehen.
Jedes Item soll 2 Elemente besitzen, einen Text (QString) und eine SpinBox.
Die erste Zeile könnte noch eine Beschriftung für die beiden Spalten (QString, SpinBox) enthalten. Meine Frage is jetzt, wie ich das am besten mache.
Erstelle ich eine Klasse und leite diese von QListView/Widget ab?
Vielen Dank für eure Hilfe!
Custom QListWidget
Gutes Stichwort! Ich war in der Lage mit einem Codebeispiel die Funktionalität zu erreichen. Allerdings mit QTableWidget und QItemDelegate.
Ich bin mir nur nicht sicher ob nicht ein QListWidget die bessere Wahl ist, denn das müsste ja auch funktionieren. Jedenfalls steht folgendes in der Class Reference:
"When subclassing QListWidgetItem to provide custom items, it is possible to define new types for them so that they can be distinguished from standard items."
Damit sollte ich doch in der Lage sein als Item ein Layout welches einen Label links und eine SpinBox rechts enthält zu erstellen, oder ist das eher umständlich?
Hier werden Namen mit einem double-Wert assoziiert. Der Name soll nicht editierbar sein, jedoch der double-Wert der einem Namen zugeordnet ist soll editierbar sein und das für jedes Element in der QMap.
Die SpinBox wird, so wie es gerade implementiert ist, nur angezeigt wenn das Feld in der Tabelle mit einem Doppelklick aktiviert wird, sonst wird der Wert als QString angezeigt. Damit bin ich eigentlich zufrieden.
Ich finde jedoch QTableWidget etas unflexibel weil es keine Funktion addItem oder ähnliches gibt.
Ich bin mir nur nicht sicher ob nicht ein QListWidget die bessere Wahl ist, denn das müsste ja auch funktionieren. Jedenfalls steht folgendes in der Class Reference:
"When subclassing QListWidgetItem to provide custom items, it is possible to define new types for them so that they can be distinguished from standard items."
Damit sollte ich doch in der Lage sein als Item ein Layout welches einen Label links und eine SpinBox rechts enthält zu erstellen, oder ist das eher umständlich?
Ich habe eine Klasse welche eine QMap (QString, double) enthält.Und brauchst du wirklich in jeder Zeile permanent eine QSpinBox, oder nur bei Bedarf?
Hier werden Namen mit einem double-Wert assoziiert. Der Name soll nicht editierbar sein, jedoch der double-Wert der einem Namen zugeordnet ist soll editierbar sein und das für jedes Element in der QMap.
Die SpinBox wird, so wie es gerade implementiert ist, nur angezeigt wenn das Feld in der Tabelle mit einem Doppelklick aktiviert wird, sonst wird der Wert als QString angezeigt. Damit bin ich eigentlich zufrieden.
Ich finde jedoch QTableWidget etas unflexibel weil es keine Funktion addItem oder ähnliches gibt.