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し、再実装することです。editable hereの良い例を見つけることができます。Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) constQt::ItemIsEditableQSqlQueryModel

于 2014-10-21T08:32:29.730 に答える