【问题标题】:How do I edit particular coulmn in QSqlTableModel如何编辑 QSqlTableModel 中的特定列
【发布时间】:2014-12-16 08:59:49
【问题描述】:

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

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


    【解决方案1】:

    您应该使用QSqlQueryModel 并设置您想要的查询,但您知道QSqlQueryModel 是不可编辑的。一个解决方案是继承QSqlQueryModel 并重新实现Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const 方法,该方法返回一组标志,其中设置了Qt::ItemIsEditable。你可以找到一个很好的可编辑的例子QSqlQueryModelhere

    【讨论】:

      猜你喜欢
      • 2019-08-16
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 2019-06-04
      • 1970-01-01
      相关资源
      最近更新 更多