查看完整版本: [-- QML的gridview视图怎么修改qsqltablemodel数据模型中的数据更新到mysql数据库中 --]

QTCN开发网 -> Qt QML开发 -> QML的gridview视图怎么修改qsqltablemodel数据模型中的数据更新到mysql数据库中 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

simomli 2020-01-14 16:05

QML的gridview视图怎么修改qsqltablemodel数据模型中的数据更新到mysql数据库中

在QML里面用的是gridview作为视图,QSqltablemodel作为模型,数据库用mysql。当在视图上修改了数据后,怎么设置到mysql?
已经重新实现了 rolenames 及 setdata 函数,比如:现在需要修改其中一个roles的值,在qml中,直接给对应的roles赋值,但是没写成功。
所以请问:在QML里面,怎么对模型数据的修改更新到mysql数据库中?

  1. setEditStrategy(QSqlTableModel::OnFieldChange);

    QHash<int, QByteArray> ftsqltablemodel::roleNames() const{
        QHash<int, QByteArray> roles;
        for (int i = 0; i < this->record().count(); i ++) {
           roles.insert(Qt::UserRole + i + 1, record().fieldName(i).toUtf8());
           qDebug() << "roles:" << record().fieldName(i).toUtf8();
        }
        return roles;
    }

    bool ftsqltablemodel::setData(const QModelIndex &index, const QVariant &value, int role){
        bool ret = false;
        if (index.isValid()) {
            if (role < Qt::UserRole) {
                QSqlTableModel::setData(index, value,role);
                ret = true;
            } else {
                int columnIdx = role - Qt::UserRole - 1;
                QModelIndex modelIndex = this->index(index.row(), columnIdx);
                if(QSqlTableModel::setData(modelIndex, value,role))
                {
                    qDebug()<< "edit " << modelIndex.row() << modelIndex.column() << value;
                    ret = true;
                }
                else{
                    qDebug()<< "edit failed " << modelIndex.row() << modelIndex.column() << value;
                }
            }
        }
        qDebug()<<"555555" << index.row() << index.column() << value << role;
        return ret;
    }


QML
  1. MouseArea{
        anchors.fill:parent
        onClicked:{
            model.MinCellVoltage = 4.2
        }
    }



查看完整版本: [-- QML的gridview视图怎么修改qsqltablemodel数据模型中的数据更新到mysql数据库中 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled