Seite 1 von 1

TreeItem und Icon

Verfasst: 26. September 2007 09:50
von D_ron
Hallo!

Ich habe eine Basisklasse TreeItem von der ich wiederum 2 Unterklassen abgeleitet habe.

Über ein Modell bilde ich die Daten des TreeItems in meiner View ab.
Die View selbst frägt nach den Daten in folgender Funktion:

Code: Alles auswählen

QVariant TreeModel::data(const QModelIndex &index, int role) const
{
    if (!index.isValid())
        return QVariant();

    if (role != Qt::DisplayRole)
        return QVariant();

    TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
	
	return item->data(index.column(), Qt::DecorationRole);
	
}
Ich bekomme es einfach nicht hin für die beiden unterschiedlichen Typen von TreeItems ein Icon anzuzeigen. Wie muss ich da vorgehen??
Die Qt::DecorationRole ist mir klar, ich weiss nur nicht ob ich setIcon() noch nachimplementieren muss und wie das genau geht bzw. wie ich die Items untereinander unterscheiden kann. Danke!

Verfasst: 26. September 2007 18:09
von khrl01
Mach es doch einfach so:

Code:

Code: Alles auswählen

QVariant TreeModel::data(const QModelIndex &index, int role) const 
{ 
    if (!index.isValid()) 
        return QVariant(); 

    if(role == Qt::DecorationRole)
    {
        return theIcon;
     }

    if (role != Qt::DisplayRole) 
        return QVariant(); 

    TreeItem *item = static_cast<TreeItem*>(index.internalPointer()); 
    
   return item->data(index.column(), Qt::DecorationRole); 
    
}
grüsse
karl-heinz