Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QSqlRelationalTableModel setData()不工作_Qt_Qml_Qt5 - Fatal编程技术网

Qt QSqlRelationalTableModel setData()不工作

Qt QSqlRelationalTableModel setData()不工作,qt,qml,qt5,Qt,Qml,Qt5,下面是从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);

下面是从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();

您是否尝试在
setData
之后调用
submitAll()
?@PavelStrakhov是的,我尝试了,但功能没有改变。据我所知,submitAll()会写回数据库。我正在尝试用在forms TextInput字段中输入的内容更新内存中的表示。