本节包括的类:
QStandardItemModel
类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据。而类QStandardItemModel负责保存数据,每个数据项表示为类QStandardItem的对象。
QStandardItem类用来保存一个数据项,而QStandardItemModel类用于将这些QStandardItem对象用列表、表格、树或者其他结构连接起来,以提供视图显示。
下面是一个例子:
QStandardItemModel listModel;
QStandardItem *rootItem = listModel.invisibleRootItem(); // 行1
for (int row = 0; row < 4; ++row){
QStandardItem *item = new QStandardItem(QString("%1").arg(row) ); // 行2
rootItem->appendRow( item ); //行3
}
QListView listView;
listView.setModel ( & listModel );
行1获取模型最顶层的根节点
行2创建一个QStandardItem对象,表示一个数据项
QString("%1").arg(row); //代表把row的值显示成字符串
str = QString("%1 %L2 %L3") //添加L代表取前几位,如L2代表取前2位L
.arg(12345)
.arg(12345)
.arg(12345, 0, 16); //一个函数的重载,表示转化为16进制
// str == "12345 12,345 3039"
行3将该数据项作为根节点的子节点添加到列表中。