zoukankan      html  css  js  c++  java
  • View与Model绑定注意事项 (视图无数据显示)

    Qt 中视图与模型绑定时,模型必须使用new来创建。否则刚开始初始化的时候,视图无数据显示,或者后期视图不能随着模型的改变而改变

    具体原因:我猜测是局部变量生命周期的问题。new 的变量在堆中,除非手动释放,否则一直存在。如果不new一个Model,把Model变量放在类成员变量中也行,视图就可以正常显示数据了。

    Eorror错误的写法

    QStandardItemModel model(4,2);  
    
    model.setHeaderData(0, Qt::Horizontal, tr("Label"));  
    model.setHeaderData(1, Qt::Horizontal, tr("Quantity"));  
     
    ui.tableView->setModel(&model);  
      
    for (int row = 0; row < 4; ++row) {  
        for (int column = 0; column < 2; ++column) {  
            QModelIndex index = model.index(row, column, QModelIndex());  
            model.setData(index, QVariant((row+1) * (column+1)));  
        }  
    }  

    Right 正确的写法

    QStandardItemModel *model;  
      
    model = new QStandardItemModel(4,2);  
    ui.tableView->setModel(model);  
      
    model->setHeaderData(0, Qt::Horizontal, tr("Label"));  
    model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));  
      
    for (int row = 0; row < 4; ++row) {  
        for (int column = 0; column < 2; ++column) {  
            QModelIndex index = model->index(row, column, QModelIndex());  
            model->setData(index, QVariant((row+1) * (column+1)));  
        }  
    }  

    转自:http://qimo601.iteye.com/blog/1535781

  • 相关阅读:
    (转)Linux: su sudo sudoer
    unsigned 和 signed
    (转)原码, 反码, 补码 详解
    判断两个链表是否相交
    源代码里面看不到页面展示的数据?原因何在
    python 小技巧 防止SSL报错信息
    python爬虫之一---------豆瓣妹子图
    服务端性能测试 TPS
    H5性能测试学习
    App测试中 ----------------Android和IOS测试区别
  • 原文地址:https://www.cnblogs.com/liushui-sky/p/5776063.html
Copyright © 2011-2022 走看看