QStandardItemModel(QColumnView)小总结
来源:互联网 发布:post请求发送json数据 编辑:程序博客网 时间:2024/05/21 19:37
QStandardItemModel(QColumnView)小总结
类QAbstractItemModel,QAbstractListModel,QAbstractTableModel不保存数据,
用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据。与此不同,类QStandardItemModel
负责保存数据,每个数据项被保存为类QStandardItem的对象。在QStandardItem内部定义了一个类型为QVector
的容器,每个容器元素本质上存放一个[角色,数据子项]对,它也定义了一个名为root的数据成员。
将数据存放在QStandardItem对象中:
void setData(const QVariant &value, int role);
从QStandardItem对象中读取数据:
QVariant data(int role) const;
若数据集被表示为一个列表: //列表被看做特殊的树:不可见根具有若干个子节点,子节点不再含其他节点
QStandardItemModel listModel;
QStandardItem *rootItem = listModel.invisibleRootItem(); //不可见的根节点
for(int row = 0; row < 4; ++row){
QStandardItem *item = new QStandardItem(QString("%0").arg(row)); //新建一个标准项
rootItem->appendRow(item); //添加一项
}
QListView listView;
listView.setModel(&listModel);
若数据集被表示为一个表格:
QStandardItemModel tableModel(4,4); //行列数
for(int row = 0; row < 4; ++row){
for(int column = 0; column < 4; ++column){
QStandardItem *item = new QStandardItem(
QString("%0,%1").arg(row).arg(column));
tableModel.setItem(row,column,item); //table
}
}
QTableView tableView;
tableView.setModel(&tableModel);
若数据集是一棵树:
QStandardItemModel treeModel;
QStandardItem *parentItem = treeModel.invisibleRootItem();
for(int i = 0; i < 4; ++i){
QStandardItem *item = new QStandardItem(QString("%0").arg(i));
parentItem->appendRow(item);
parentItem = item;
}
QTreeView treeView;
treeView.setModel(&treeModel);
/********************************************************************************************/
#include "widget.h"
#include <QtGui>
#include <QApplication>
#include <QFileSystemModel>
#include <QColumnView>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QFileSystemModel model;
model.setRootPath("C:/");
QColumnView *cview = new QColumnView;
cview->setModel(&model);
cview->show();
return app.exec();
}
运行结果:
0 0
- QStandardItemModel(QColumnView)小总结
- QStandardItemModel
- QStandardItemModel
- QColumnView使用
- QStandardItemModel简介
- QStandardItemModel QDataWidgetMapper
- 关于QStandardItemModel
- 关于QStandardItemModel
- QTreeView 使用 QStandardItemModel
- QT 之 QStandardItemModel
- QTableView与QStandardItemModel
- qListView 和 qStandardItemModel
- QStandardItemModel内存管理
- QStandardItemModel的用法
- QStandardItemModel的使用
- QListView 和 QStandardItemModel的使用
- QTableView与QStandardItemModel基本使用方法
- QStandardItemModel在QTreeView中的使用
- 哈希表
- Android中的Notification初步应用
- poj1861 并查集
- SSH实现ubuntu与windows的文件互传
- red head Linux 下安装jdk
- QStandardItemModel(QColumnView)小总结
- 结构类型数组
- Java数值表示
- Oracle 创建用户 修改用户密码 授权命令
- 见过比csdn还烂的论坛吗?
- Linux 添加用户并添加组过程
- 2015校园招聘
- Oracle中动态SQL详解
- ACM--最长公共子序列 动态规划求解