Qt Model/View 构架
2016-06-03 09:03
519 查看
Model:管理数据项 View :负责显示
在框架中存在 Row、Column。
和二位数组一样,而交集的每一项称为Item, 每一项的坐标称为QModelIndex。
在工程中,每个Item不单会作为显示,而且里面都会包含数据。
item是可以关联多个数据,每个数据用一个role来标识。
Qt::Display(0);Qt::UserRole(32).自定义数据,大家可以转到定义,里面为数据枚举,
若里面的满足需求可以直接用内部定义的,若不满足或者不想去看里面的定义,可以直接在后面进行增加。
QModeIndex Index=model->index(i,j);
model->setitemData(index,"数据",Qt::Display);
看下使用方法吧。<pre name="code" class="cpp"><span style="white-space:pre"> </span>tw_WorkArae=new QTableWidget(this);
<span style="white-space:pre"> </span>QAbstractItemModel* model=tw_WorkArae->model();
for (int z=0;z<5;z++)
{
for (int k=0;k<4;k++)
{
model->setData(model->index(z,k),QString::number(z)+"abcd"+QString::number(k),Qt::DisplayRole);
}
}
输出结果
使用model 比平常的代码更简洁,而且里面的功能很强大。后续再继续看看。
在框架中存在 Row、Column。
和二位数组一样,而交集的每一项称为Item, 每一项的坐标称为QModelIndex。
在工程中,每个Item不单会作为显示,而且里面都会包含数据。
item是可以关联多个数据,每个数据用一个role来标识。
Qt::Display(0);Qt::UserRole(32).自定义数据,大家可以转到定义,里面为数据枚举,
若里面的满足需求可以直接用内部定义的,若不满足或者不想去看里面的定义,可以直接在后面进行增加。
QModeIndex Index=model->index(i,j);
model->setitemData(index,"数据",Qt::Display);
看下使用方法吧。<pre name="code" class="cpp"><span style="white-space:pre"> </span>tw_WorkArae=new QTableWidget(this);
<span style="white-space:pre"> </span>QAbstractItemModel* model=tw_WorkArae->model();
for (int z=0;z<5;z++)
{
for (int k=0;k<4;k++)
{
model->setData(model->index(z,k),QString::number(z)+"abcd"+QString::number(k),Qt::DisplayRole);
}
}
输出结果
使用model 比平常的代码更简洁,而且里面的功能很强大。后续再继续看看。
相关文章推荐
- Qt学习笔记:Signal & Slot
- Qt Write and Read XML File 读写XML文件
- Qt官方开发环境生成的exe发布方式--使用windeployqt
- Qt实现停靠功能
- Qt的QWaitCondition(允许线程在一定条件下唤醒其他线程,这样对不间断上传可能比较适用)
- VS2015+OpenCV2.4.9+Qt5.6安装配置
- Qt对话框_模态/非模态
- QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透
- Qt中文件操作遇到的(变量,容器,结构体)
- Qt中所有类型之间的转换
- QTP(UFT)只能录制窗口的操作,不能录制窗口中对象的操作
- Qt自定义委托在QTableView中绘制控件、图片、文字
- Qt Createor和VS2012里面添加信号和槽
- Qt 信号和槽
- Qt 常用容器
- Qt5的新特性
- Qt Delgate 委托的使用
- qt和VS动态库调用心得
- QTableWidget的使用说明和增删改
- Qt TreeWidget的增删改