Hola eferion:
Gracias por estar ahí. Aunque he visto tu respuesta (y la entiendo!!!)
me pregunto si sería válido éste planteamiento que conseguí hacer ayer después de plantear la duda....quiero decir, funciona pero no sé si es ortodoxo.
La idea es sobrecargar el constructor del delegado, de forma que incorpore un puntero al grafo en cuestión, y poder hacer uso así del mismo.
Esto es lo que he hecho:
El delegado:
Código C++:
Ver original#ifndef DELEGADOPARANUMERO_H
#define DELEGADOPARANUMERO_H
#include <QStyledItemDelegate>
class Grafo;
class DelegadoParaNumero : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit DelegadoParaNumero(Grafo* grafo, QWidget *parent = 0);
private:
Grafo* G;
protected:
virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
};
#endif // DELEGADOPARANUMERO_H
el *.cpp
Código C++:
Ver originalDelegadoParaNumero::DelegadoParaNumero(Grafo* grafo, QWidget *parent) : G(grafo), QStyledItemDelegate(parent) {}
void DelegadoParaNumero::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QColor colorFondo (Qt::cyan);
painter->save();
//painter->setPen(colorNumeros);
if (G->NivelCero())
{
painter->fillRect(option.rect,colorFondo);
}
painter->drawText(option.rect,Qt::AlignCenter,index.data().toString());
painter->restore();
}
Perdón, añado el "seteo" de este delegado en la tabla:
Código C++:
Ver originaltabla->setItemDelegateForColumn(0,new DelegadoParaNumero(migrafo));
¿Qué piensas? :-?