Qt模型视图结构3_模型索引与模型的常用函数

前言

在数据项、模型以及视图三者之间,模型索引扮演着至关重要的角色。因此在此将模型索引的函数列举一下。

模型索引相关函数

模型索引相关函数可以分为四类:

  1. 与当前数据项相关的函数

    //数据项的位置
    int QModelIndex::column() const
    int QModelIndex::row() const
    
    //数据项的内容
    QVariant QModelIndex::data(int role = Qt::DisplayRole) const
    
    //读取数据项的状态(选中、编辑、拖拽、用户可勾选、使能等)
    Qt::ItemFlags QModelIndex::flags() const
    
  2. 获取模型

    //获取模型
    const QAbstractItemModel *QModelIndex::model() const
    
  3. 获取其他的数据项的模型索引

    sibling 兄弟姊妹的意思

    QModelIndex QModelIndex::parent() const
    QModelIndex sibling(int row, int column) const
    QModelIndex QModelIndex::siblingAtRow(int row) const
    QModelIndex QModelIndex::siblingAtColumn(int column) const
    
  4. 模型索引是否合法

    bool QModelIndex::isValid() const
    

模型索引与模型

//从模型中获取模型索引
QModelIndex index = model->index(row,col);
QModelIndex index = model->indexFromItem(item);

//从模型中获取数据项
QStandardItem* item = model->item(row, col);
QStandardItem* item = model->itemFromIndex(index);

访问和修改数据项的方法

QModelIndex idx = theModel->index(0, 0);
theModel->setData(idx, "123", Qt::EditRole);

QStandardItem* it = theModel->item(0, 0);
it->setData("123", Qt::EditRole);
posted @ 2023-02-01 22:16  YueLiGo  阅读(113)  评论(0编辑  收藏  举报