Hallo,
ich habe eine QTableView, die Daten mittels eines Models aus einer DB bezieht. Ich hab dafür ein QItemDelegate, dass eine Zelle je nach Inhalt unterschiedlich gefärbt wird. Das klappt auch ganz gut.
Jetzt will ich aber die ganze Zeile einfärben entsprechend der Zahl in einer bestimmten Spalte. Wie mach ich das dann?
Außerdem würde ich gerne den Inhalt zur Laufzeit ändern bzw. dynamisch darstellen wollen. Ich habe in der DB eine Tabelle mit 2 Spalten, die sollten aber in einer Spalte in der QTableView angezeigt werden. Sagen wir in Spalte 1 der DB steht "2" und in der anderen "C", dann soll in der QTableView in EINER Spalte "2 C" stehen. Geht das irgendwie? Die Tabelle ist read-only...
Danke für die Hilfe...
QTableView Zellen ändern (Farbe und Inhalt)
du kannst deinem abgeleiteten QAbstractItemModel in der data(QModelindex , parent) Methode die Anforderung einer Qt::DisplayRole und dem ersten Spaltenindex "bla" so umschreiben das du dort "bla"+"blubb" (dem Modelindex der 2. Spalte) zurückgibst ... wenn die 2. Spalte mit Qt::DisplayRole angefordert wird, dann ein QVariant() zurückgeben ...
ich leite mir also meine eigene model-klasse ab? Ist das nicht ein wenig umständlich, da immer eine eigene Klasse zu erstellen? Derzeit verwende ich als Model ein QSqlQueryModel. Also kann ich davon ableiten und dann halt die data-Methode neu implementieren?padreigh hat geschrieben:du kannst deinem abgeleiteten QAbstractItemModel in der data(QModelindex , parent) Methode die Anforderung einer Qt::DisplayRole und dem ersten Spaltenindex "bla" so umschreiben das du dort "bla"+"blubb" (dem Modelindex der 2. Spalte) zurückgibst ... wenn die 2. Spalte mit Qt::DisplayRole angefordert wird, dann ein QVariant() zurückgeben ...
danke, funktioniert klasseupsala hat geschrieben:Du kannst in deinem QItemDelegate auch die Daten aus anderen Spalten abfragen. Siehe z.B. QModelIndex::sibling