QtableView Textfarbe bestimmter Zeilen aendern

Alles rund um die Programmierung mit Qt
Antworten
fernand
Beiträge: 7
Registriert: 18. Mai 2007 17:14

QtableView Textfarbe bestimmter Zeilen aendern

Beitrag von fernand »

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 »

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 »

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 »

Auch mit data() ?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

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 »

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 »

Was soll man da noch sagen?
fernand
Beiträge: 7
Registriert: 18. Mai 2007 17:14

Beitrag von fernand »

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 »

Alles funktionniert mit dem angegebenen Code
Besten Dank nochmals
Fernand
Antworten