• 5655阅读
  • 4回复

qtableview 数据显示问题 [复制链接]

上一主题 下一主题
离线tianfeng0418
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-05
因为在数据中的是加密的,我想在这里显示不加密的内容,要怎么样操作。
QSqlQueryModel * query = new QSqlQueryModel;

    query->setQuery("select * from users",db);
    query->setHeaderData(0,Qt::Horizontal,tr("用户名"));
    query->setHeaderData(1,Qt::Horizontal,tr("密码"));
    query->setHeaderData(2,Qt::Horizontal,tr("姓名"));

    usrView->setModel(query);
    usrView->setColumnWidth(0,150);
    usrView->setColumnWidth(1,150);
    usrView->setColumnWidth(2,200);

    usrView->show();

这人很懒,什么也没有留下。
离线wxj120bw

只看该作者 1楼 发表于: 2011-12-05
回 楼主(tianfeng0418) 的帖子
你子类化QSqlQueryModel的setData函数 尝试下 应该可以
离线tianfeng0418
只看该作者 2楼 发表于: 2011-12-07
能否讲详细点。
这人很懒,什么也没有留下。
离线沙漠之源

只看该作者 3楼 发表于: 2011-12-28
继承QSqlQueryModel类,继承的子类重写QVariant data ( const QModelIndex & item, int role = Qt::DisplayRole ) const函数.下面是QSqlQueryModel的实现.
QVariant QSqlQueryModel::data(const QModelIndex &item, int role) const
{
    Q_D(const QSqlQueryModel);
    if (!item.isValid())
        return QVariant();

    QVariant v;
    if (role & ~(Qt::DisplayRole | Qt::EditRole))
        return v;

    if (!d->rec.isGenerated(item.column()))
        return v;
    QModelIndex dItem = indexInQuery(item);
    if (dItem.row() > d->bottom.row())
        const_cast<QSqlQueryModelPrivate *>(d)->prefetch(dItem.row());

    if (!d->query.seek(dItem.row())) {
        d->error = d->query.lastError();
        return v;
    }

    return d->query.value(dItem.column());
}
离线zhuqingxin
只看该作者 4楼 发表于: 2012-06-01
model->removeColumn()
tableView->setColumnHidden()
这两个函数组合下试试看
快速回复
限100 字节
 
上一个 下一个