1

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

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(); 

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

4

1 回答 1

1

您应该使用QSqlQueryModel并设置您想要的查询,但您知道QSqlQueryModel它是不可编辑的。一种解决方案是子类QSqlQueryModel化并重新实现该Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const方法,该方法返回一组设置的标志Qt::ItemIsEditableQSqlQueryModel 您可以在此处找到一个很好的可编辑示例。

于 2014-10-21T08:32:29.730 回答