Acceder antes de mostrar cn QSqlTableModel



  • hola a todos resulta que estoy accediendo a una tabla QSqlTableModel, bueno el poblema es que encripte una columna, ahora bien tendran una idea de como acceder antes a dicha columna para descifrarlo, y luego mostrarlo.



  • Hola

    Quizás te pueda servir usar un "delegate", en "la documentación tienes un par de ejemplos":http://doc-snapshot.qt-project.org/4.8/itemviews-spinboxdelegate.html

    Tendrías que reimplementar el método paint y ahí desencriptar la columna y mostrar el resultado.

    Te pongo un ejemplo que hice yo para que un campo de tipo float me aparezca como precios:

    @void FormatearFloat::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
    QStyleOptionViewItem myOption = option;

    QString texto;

    float valor = index.model()->data(index, Qt::DisplayRole).toFloat();

    texto = QString::number(valor, 'f', 2);
    texto.append(trUtf8(" €"));

    myOption.displayAlignment = Qt::AlignRight | Qt::AlignVCenter;

    drawDisplay(painter, myOption, myOption.rect, texto);
    drawFocus(painter, myOption, myOption.rect);
    }
    @

    Como ves, es algo muy sencillito.

    Saludos


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.