Alles rund um die Programmierung mit Qt
fernand
Beiträge: 7 Registriert: 18. Mai 2007 17:14
Beitrag
von fernand » 18. Mai 2007 17:29
Hallo
Habe folgendes Problem
Möchte in eimen TableView in Feldern der Kolonne 1 den Text rot schreiben falls Kolonne 5 zb den Wert 0 hat.
benutze zur Zeit ein Qsqlquerymodel.
besten Dank im Voraus
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 18. Mai 2007 17:44
QSqlQueryModel ableiten und data() überschreiben. Qt::ForegroundRole dann verwenden um die Textfarbe zu vergeben...
fernand
Beiträge: 7 Registriert: 18. Mai 2007 17:14
Beitrag
von fernand » 18. Mai 2007 17:56
Danke für die schnelle Antwort
Klappt prima ,aber wie kann ich auf den Wert einer anderen Kolonne
in der Methode data() zugreifen
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 18. Mai 2007 19:03
Auch mit data() ?
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 18. Mai 2007 20:52
Code: Alles auswählen
class MyModel : public QSqlQueryModel {
Q_OBJECT
public:
MyModel(QObject *parent=0) : QSqlQueryModel(parent) {};
~MyModel() {};
QVariant data (const QModelIndex &item, int role=Qt::DisplayRole) const
{
if (item.isValid() &&
item.column()==1 &&
role==Qt::ForegroundRole &&
index(item.row(), 5, item.parent).data().toInt()==0) {
return QColor(Qt::red);
}
return QSqlQueryModel::data(item, role);
}
}
fernand
Beiträge: 7 Registriert: 18. Mai 2007 17:14
Beitrag
von fernand » 18. Mai 2007 21:12
Bei jedem Aufruf von data() habe ich aber immer nur den Wert eines Feldes zur verfügung dh bei Feld 1 stehen keine Werte von Feld 5 bereit die mir erlauben sollen Feld 1 anders auszugeben
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 18. Mai 2007 21:46
Was soll man da noch sagen?
fernand
Beiträge: 7 Registriert: 18. Mai 2007 17:14
Beitrag
von fernand » 19. Mai 2007 14:46
Habe mit der Class MyModel probiert,erhalte aber beim Compilieren immer die Fehlermeldung
no matching function for call to "MyModel::index(int,int,<unknown type>)const
fernand
Beiträge: 7 Registriert: 18. Mai 2007 17:14
Beitrag
von fernand » 20. Mai 2007 15:56
Alles funktionniert mit dem angegebenen Code
Besten Dank nochmals
Fernand