qt相关资料
的信息是非常重要的。通过为每个角色提供适当数据,model也为views和delegates提供了暗示,如何正确地
把这些数据项显给用户。不同的views可以自由地解析或忽略这些数据信息,对于特殊的场合,也可以定义
一些附加的角色。
概念总结:
1,Model indexes为views与delegages提供model中数据项定位的信息,它与底层的数据结构无关。
2,通过指定行,列数,父项的model index来引用数据项。
3,依照别的组件的要求,model indexes被model构建。
4,使用index()时,如果指定了有效的父项的model index,那么返回得到的model index对应于父项的某个孩子。
5,使用index()时,如果指定了无效的父项的model index,那么返回得到的model index对应于顶层项的某个孩子。
6, 角色对一个数据项包含的不同类型的数据给出了区分。
使用Model Indexes
QDirModel *model = new QDirModel;
QModelIndex parentIndex = model->index(QDir::currentPath()); int numRows = model->rowCount(parentIndex);
for (int row = 0; row < numRows; ++row)
{
QModelIndex index = model->index(row, 0, parentIndex);
tring text = model->data(index, Qt::DisplayRole).toString(); // Display the text in a widget.
}
以上的例子说明了从model中获取数据的基本原则:
1,model的尺寸可以从rowCount()与columnCount()中得出。这些函数通常都需要一个表示父项的model index。
2,model indexes用来从model中访问数据项,数据项用行,列,父项model index定位。
3, 为了访问model顶层项,可以使用QModelIndex()指定。
4, 数据项为不同的角色提供不同的数据。为了获取数据,除了model index之外,还要指定角色。
Qt Model/View 学习笔记 (四)
清源游民 gameogre@
创建新的Models
介绍
model/view组件之间功能的分离,允许创建model利用现成的views。这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和QTreeView来显示来自各种数据源的数据为。
QAbstractListModel类提供了非常灵活的接口,允许数据源以层次结构的形式