View与Model绑定注意事项 (视图无数据显示)
2024-08-31 01:09:19
Qt 中视图与模型绑定时,模型必须使用new来创建。否则刚开始初始化的时候,视图无数据显示,或者后期视图不能随着模型的改变而改变。
具体原因:我猜测是局部变量生命周期的问题。new 的变量在堆中,除非手动释放,否则一直存在。如果不new一个Model,把Model变量放在类成员变量中也行,视图就可以正常显示数据了。
Eorror错误的写法
QStandardItemModel model(,); model.setHeaderData(, Qt::Horizontal, tr("Label"));
model.setHeaderData(, Qt::Horizontal, tr("Quantity")); ui.tableView->setModel(&model); for (int row = ; row < ; ++row) {
for (int column = ; column < ; ++column) {
QModelIndex index = model.index(row, column, QModelIndex());
model.setData(index, QVariant((row+) * (column+)));
}
}
Right 正确的写法
QStandardItemModel *model; model = new QStandardItemModel(,);
ui.tableView->setModel(model); model->setHeaderData(, Qt::Horizontal, tr("Label"));
model->setHeaderData(, Qt::Horizontal, tr("Quantity")); for (int row = ; row < ; ++row) {
for (int column = ; column < ; ++column) {
QModelIndex index = model->index(row, column, QModelIndex());
model->setData(index, QVariant((row+) * (column+)));
}
}
转自:http://qimo601.iteye.com/blog/1535781
最新文章
- iOS中UIImageView的填充模式
- git ssh key创建和github使用
- OracleHelper
- poj3468,poj2528
- Eclipse+Axis自动生成Web Service WSDL文件
- 终于解决了我的DISCUZ 无法连接到您的服务器,可能您的服务器处于防火墙后端 论坛云平台的问题~
- TSSAO Temporal Screen-Space Ambient Occlusion (Unity3d 5 示例实现)
- linux搜索命令
- struts2中的action访问web对象
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
- linux 下 Fatal error: Class ‘mysqli’ not found in
- java servlet的域对象
- Java的程序执行过程与编译原理
- web架构延变
- 第一个NDK工具:AddInputsSol
- Tomcat默认工具manager管理页面访问配置
- hadoop学习之yarn资源管理
- python with原理
- IntelliJ IDEA之如何提交代码到SVN服务器
- 在QtCreater中配置Artistic Style格式化Qt程序源代码!!
热门文章
- sphinx 配置文件全解析(转)
- Spring横切面(advice),增强(advisor),切入点(PointCut)(转)
- OpenGL cullface
- TCP通信的三次握手和四次撒手的详细流程(顿悟)
- Java并发和多线程那些事儿
- 在Maprecue中利用MultipleOutputs输出多个文件
- cocos2d-x JsonBox 读写
- 深入理解Eureka - Eureka Client获取注册信息机制
- Spring Boot干货系列:(三)启动原理解析
- rm: cannot remove `dir&#39;: Device or resource busy解决办法