如何在 QSqlTableModel 中编辑特定字段

问题描述 投票:0回答:2

我想从数据库中显示一个表并显示它,但也想根据函数修改特定列

QSqlTableModel *model = new QSqlTableModel(parentObject, database);
    model->setTable("employee");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    model->setHeaderData(0, Qt::Horizontal, tr("Name"));
    model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
    model->setHeaderData(2, Qt::Horizontal, tr("encrypted_item"));
    QTableView *view = new QTableView;
    view->setModel(model);
    view->hideColumn(0); // don't show the ID
    view->show(); 

但是现在我不想打印加密的项目,而是想解密并显示它,我该怎么做?

c++ sql qt qtableview qsqltablemodel
2个回答
1
投票

您应该使用

QSqlQueryModel
并设置所需的查询,但您知道
QSqlQueryModel
不可编辑。解决方案是子类
QSqlQueryModel
并重新实现
Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const
方法,该方法返回一组设置
Qt::ItemIsEditable
的标志。您可以在
QSqlQueryModel
here找到一个很好的可编辑示例。


0
投票

感谢您的回答,但我有同样的问题,您能清楚地解释答案吗?链接打不开

© www.soinside.com 2019 - 2024. All rights reserved.