1

以下は、デバッグ用に変更された、QSqlRelationTableModel から派生したクラス QLSqlTableModel のメンバー関数です。

void QLSqlTableModel::setQLData(int row, int column, QVariant value){
    QModelIndex qmi = index(row, column);
    QVariant originalVal = qmi.data();
    bool isSet = setData(qmi, value);
    QVariant newVal = qmi.data();
}

デバッガーで実行すると、値は次のようになります。

value = "B"
originalValue = "A"
isSet = true
newVal = "A"

何らかの理由で、setData() は true を返しますが、実際には新しいデータ値を設定していません。私のテーブルの実装は次のとおりです。

QLSqlTableModel *model = new QLSqlTableModel(NULL, db);
model->setTable("tableName");
model->setEditStrategy(QSqlRelationalTableModel::OnManualSubmit);
model->generateRoleNames();
model->select();
4

0 に答える 0